Below is a table of Response Properties along with examples and explanations.
Buffer |
Response.Buffer = true |
CacheControl |
Response.CacheControl="Public" |
CharSet |
Response.CharSet="windows-1252" |
ContentType |
Response.ContentType="text/HTML" |
Expires |
Response.Expires=60 |
ExpiresAbsolute |
Response.ExpiresAbsolute=#January 31, 2003 13:00:00# |
IsClientConnected |
if (Response.IsClientConnected==true) { } |
PICS |
((See Explanation)) |
Status |
Response.Status="401 Unauthorized" |
You are not required to set, alter, or utilize a single Response Property if you don't want to. Having said that, they can be handy once in while. I've demonstrated all but two Properties in the script below.
By the way, set your properties BEFORE you begin output to the client.
Get Started:
Below is the ASP script for Lesson 07.
<%@LANGUAGE="JavaScript"%> <% Response.Buffer=true Response.CacheControl="Private" Response.CharSet="windows-1252" Response.ContentType="text/HTML" Response.Expires=-1 Response.Status="200 OK" %> <HTML> <BODY> <% if (Response.IsClientConnected==true) { Response.Write("The client is connected.<BR>") } else { Response.End() } %> <TABLE BORDER="2"> <TR> <% for (x=1;x<=200;x++) { Response.Write("<TD>" + x + " </TD>\r") if (x%10==0) { Response.Clear() } if (x%4==0) { Response.Write("</TR></TABLE>\r") Response.Write("<TABLE BORDER=\"2\">") Response.Write("\r<TR>") Response.Flush() } } %> </TR></TABLE> </BODY> </HTML>
Click Here to run the script in a new window. After you click onto the link, really study the numbers. See if you notice anything weird about the page, like missing numbers.
Response.Buffer:
Let's take the Properties in order of appearance in our script. Response.Buffer allows us to control the output via Response.Flush() and Response.Clear(). If you haven't already, click onto the link to run the script. You'll get a strange output with some of the numbers missing. The missing numbers are thanks to Response.Clear(). You might notice that Response.Flush() slows down the server TREMENDOUSLY. Don't use this method without a reason.
Response.CacheControl:
CacheControl gives you the power to authorize proxy servers to keep your page in cache. (That would be the "Public" setting.) Likewise, it allows you to disallow proxy servers from caching your page. (That would be the "Private" setting). The default is "Private."
Response.CharSet:
CharSet allows you to specify the character set, for example: "ISO 8859-1".
Response.ContentType:
ContentType allows you to indicate the mime type of the output. For example there is text/plain and text/html. There is also GIF and JPEG.
Response.Expires:
Expires allows you set an expiration time for the page. By setting the Expires property to -1, you are saying the page expired one minute before it was delivered. The browser will (hopefully) not store it in cache, but rather make a separate request to the server before re-displaying the page.
Response.Status:
If tomorrow Congress were to pass a law forbidding the use of Response.Status, I think life would go on. If it makes you happy, use it.
Response.IsClientConnected:
IsClientConnected does exactly what it says. It returns a Boolean value that you can use in an "if" statement.
Response.PICS:
PICS stands for Platform for Internet Content Selection. It allows pages to be rated for the presence of violence, sexuality, language and nudity. There are services on the internet to rate your site. I've never used one. I found a sample PICS string on the internet and I converted to JavaScript.
Response.PICS("(PICS-1.1 <http://www.rsac.org/ratingv01.html> labels on \"1997.01.05T08:15-0500\" until \"1999.12.31T23:59-0000\" ratings (v 0 s 0 l 0 n 0))")
It's a long string and your browser may have wrapped the text down to a second line. If that's the case, then you have to pretend that the entire PICS string is on one line.
Response.ExpiresAbsolute:
I did not demonstrate ExpiresAbsolute in the script because I already used Response.Expires. ExpiresAbsolute does exactly the same thing as Expires, except it uses a date and time certain. (I couldn't see using both in the same script.) The only thing I would point out is the pound signs (#) at the beginning and and of the date.