灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:4631回复:0

[系统教程]ASP培训教程(8)

楼主#
更多 发布于:2012-09-10 21:24



重定向浏览器
用 Redirect 方法可将浏览器重定向到另一个 URL,而不是将内容发送给用户。例如,如果您想确认用户是否已从主页进入了您的应用程序,以便能收到一个客户 ID,则可以检验他们是否有客户 ID 号;如果没有,就可以将其重定向到主页。
<%
If Session("CustomerID") = 0 Then
Response.Redirect "homepage.asp"
End If
%>
除非缓冲区已经打开,否则,在任何内容或标题返回给浏览器之前,您必须重定向浏览器。将 Response.Redirect 语句放在页的顶部和<HTML> 标记之前可确保没有任何内容返回给浏览器。如果在返回给浏览器的内容或标题后使用 Response.Redirect,将看到一个错误信息。
如果在页的中间使用 Response.Redirect,请将其与 Response.Buffer 属性一起使用,下面的部分将进行解释。
缓冲内容
默认情况下,web 服务器返回 HTML 和在处理 ASP 页时的脚本处理结果。但是,您可以设置 Response 对象的 Buffer 属性以便在向用户发送任何内容之前,先处理页上的所有的服务器脚本命令。
可以使用缓冲技术来确定在页处理过程中的某个点,而您并不想将该点之前的内容发送给用户。也可以用 Response 对象的 Redirect 方法将用户重定向到另一页,或者用 Response 对象的 Clear 方法清除缓冲区并将不同的内容发送给用户。下面的例子使用了以上两种方法。
<%
'Turn on buffering. This statement must appear before the <HTML> tag.
Response.Buffer = True %>
<html>
<body>
%>
If Request("FName") = "" Then
Response.Clear
Response.Redirect "/samples/test.html"
Else
Response.Write Request("FName")
End If
%>
</body>
</html>
也可以使用 Response.Buffer 避免 Web 服务器在脚本修改 HTTP 标题之前将其返回。有些属性和方法,例如 Response.Expires 和 Response.Redirect 可修改 HTTP 标题。
当在脚本中设置 Buffer 属性并且没有调用 Flush 方法时,服务器将保持用户发出的 Keep-Alive 请求。养成这样的脚本编写习惯有益于提高服务器的性能,因为,服务器不必为每一个用户请求创建新的连接(假定服务器、用户和任何代理服务器都支持 Keep-Alive 要求)。但是,这种方法的一个潜在的不利因素是:在用户处理完当前的 asp 文件的所有的脚本之前,缓冲区不显示任何响应给用户。对于较长的和较复杂的脚本,用户可能要被迫等待很长一段时间才能看到这一页。
默认情况下,缓冲区对于 ASP 应用程序是关闭的。可以使用 internet 服务管理器为整个 ASP 应用程序打开缓冲区。详细信息,请参阅配置 ASP 应用程序。

喜欢0 评分0
游客

返回顶部