INTELLIGENT WORK FORUMS
FOR COMPUTER PROFESSIONALS

Log In

Come Join Us!

Are you a
Computer / IT professional?
Join Tek-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!

*Tek-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Jobs

ASP 101

Response.Redirect and Response.Buffer by durug
Posted: 14 Apr 02

The Redirect method stops processing the current script and attempts to connect the client to a different URL. This is accomplished by adding an HTTP redirection header to the output stream that is being sent from the server to the client. Unfortunately, if page content has already been sent to the client and if a proxy server lies between the server and the client, an error message can be generated. Therefore it is advisable to set Response.Buffer to true and to call Response.Clear just before calling Redirect.

Note in ASP 2.0, the buffering default setting is false and in ASP 3.0, the buffering default setting is true.

There is one mandatory argument.

URL

The URL argument is the Uniform Resource Locator (URL) that the browser is redirected to.

Code:
--------------File1.asp---------------
<% Response.Buffer = true %>
<HTML>
<BODY>
<%
Response.Write "This is File1.asp and switching to File2.asp"
Response.Clear
Response.Redirect "File2.asp"
%>
</BODY>
</HTML>

 
--------------File2.asp-----------------
<HTML>
<BODY>
<%
Response.Write "This is File2.asp"
%>
</BODY>
</HTML>

Output:
File1 is written and then the browser will load File2:
------------File1.asp------------------
This is File1.asp and switching to File2.asp
 
------------File2.asp-------------------
This is File2.asp

The Buffer property tells whether to buffer (temporarily store) the output page being sent to the browser. A response is not sent to the browser until all scripts are processed, or the Flush or End methods are called. The Buffer property cannot be set or changed after the server has sent output to the browser. Therefore, you need to set the Buffer property on the first line of the ASP page. If the Buffer is set to True, then the server will buffer the output. If it is set to False, then no buffering occurs.

In ASP version 2.0 the default value is False and no buffering is done.

In ASP version 3.0 the default value is True and the server will buffer the output. However, there is a quirk concerning the default value of Response.Buffer that is dependent upon how Windows 2000 (which contains IIS 5.0 and ASP 3.0) is initially installed on your computer. If you do a clean install, the default value will be True. If the install is an upgrade, the default value will be False.

In the code example, there is no output because the loop does not finish and the Buffer will not empty until the script has finished. If the buffer was set to False, then the Response.Write would write the number to the browser every time it went through the loop.

Code:
<%
Response.Buffer = TRUE
x=0
Do
    x = x+1
    Response.Write x & "<BR>"
Loop
%>  


www.devguru.com
Copyright Copyright 1999-2002 by Infinite Software Solutions, Inc. All rights reserved.



Back to Microsoft: ASP (Active Server Pages) FAQ Index
Back to Microsoft: ASP (Active Server Pages) Forum

My Archive

Resources

Close Box

Join Tek-Tips® Today!

Join your peers on the Internet's largest technical computer professional community.
It's easy to join and it's free.

Here's Why Members Love Tek-Tips Forums:

Register now while it's still free!

Already a member? Close this window and log in.

Join Us             Close