发信人: wuga(冰雨梦)
整理人: wuga(2001-11-24 11:31:51), 站内信件
|
Redirecting to another page in ASP 3.0
在ASP2.0中提供了response对象的redirect方法去重定向用户到另一页。但这个过程并不是很有效,因为在导航到新页前需要额外通过客户端浏览器。ASP3.0提供了server对象的两个新方法来重定向用户到另一页。这两个方法是Transfer() 和 Execute()方法。
下面让我们研究对比redirect来以下这两个方法:
当使用redirect方法时会有以下过程发生:
1.客户端收到包含Response.Redirect的页面。
2.ASP 处理 Redirect 发送浏览器一个HTTP 302:对象被移动 错误码。如果Response的Buffering属性是off,IIS将显示一个错误页。
3.如果Response的Buffering属性是on,浏览器自动发出获取新页的请求。
这样使用Redirect有如下问题:
1.到新页前需要额外通过客户端浏览器,这必须明确的发送新页的请求,因此会花费额外的网络带宽时间。
2.重定向后的页面和之前的页面不能保证在相同域,这将有可能失去你的客户信息的Session。
(译注:事实上更主要的问题在于页面转换时。使用Redirect,Request集的内容会丢失,而Transfer不会。)
3.在理论上有可能造成重定向死循环。
(译注:用Redirect事实上不会造成死循环,因为重定向在115次后会自动停止有兴趣的读者可以试试,关于115怎么说呢---微软的东西虽然粗糙但真是结实 :@ )
现在让我们看看新的这两个方法.
Transfer()可以这样调用
<% server.transfer("newpage.asp") %>
类似Execute()可以这样调用
<% server.Execute("newpage.asp") %>
最后,说明一下这两个方法是用于ASP3.0的
---- 北京社区体育运动中国足球版副
北京社区编程世界ASP版副
还要常来绿荫风云聊聊呀~~
:乱灌者严惩!
|
|