2.Response.Redirect和Server.Transfer的区别?

看了网上的解答,自己总结了一下

 

Response.Redirect 原理:

浏览器ASP文件请求—>服务器执行—>遇到Response.Redirect语句—>服务器发送—>Response.Redirect后面的地址给客户机端的浏览器—>浏览器请求执行新的地址。

 

 

server.transfer原理:

浏览器ASP文件请求—>服务器执行—>遇到Server.Transfer语句—>服务器转向新的文件

 

1.Response.Redirect 是从浏览器重定向到另一页,而server.transfer则是使用服务端的方法将用户定向到另一页.

2.server.transfer 的优点是可以将页面参数方便的传递到指定页面,服务端只是将上下文传输到另一页,你可以共享页之间的信息,不会占用较多的http请求,减少客户端对服务端的请求,因些可以减轻服务端的压力,使你的服务器运行更快。response.redirect 则要执行额外的往返过程,这会影响性能,通常在做指向外部的web链接时使用.

3.server.transfer吸局限于同一服务端的同一站点的运行,而Response.Redirec则不是.

注意问题:

 

server.transfer跳转到其它页面,浏览器上的URL地址不会变,要是刷新此页面会有意外的bug,不能使用server.transfer重定向到.asp或.asmx页。

 

还有,Server.Transfer方法还有二个参数的重载方法——
"preserveForm"如果你将其设置为True(默认情况是False),
使用一个状态比如:Server.Transfer("WebForm2.aspx", True),
现存的请求字符串和所有的Form里的变量将被保持并提交到你的
目标页。

但是必须注意的是,这里有一个奇怪的Bug(微软为什么有这样
的Bug)。当你使用两个参数的重载方法试图迁移form和请求字符
串的时候会有可能产生错误。

非官方的解决办法是将要被跳转的画面的enableViewStateMac
的属性设置为 True , 然后再设回 False.

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值