Server.Transfer和Response.Redirect 区别收集
2009-02-25 17:18
232 查看
在实现页面跳转的时候,有些人喜欢用Response.Redirect,而有些人则喜欢用Server.Transfer。大部分时间似乎这两种方法都可以实现相同的功能,那究竟有区别吗?
查了些文档,发现两者区别还是很明显的。根本上,Response是叫浏览器去重新转向到指定的网页,而Server自然是发生在服务器端为主了,因此会有以下区别:
1. Server.Transfer只能够转跳到本地虚拟目录指定的页面,而Response.Redirect则十分灵活;
2. Server.Transfer可以将页面参数方便传递到指定页面;
3. 使用时,Server.Transfer跳到别的页面后,浏览器显示的地址不会改变,有时反而会造成误会,当然也有些场合需要这样的效果;
4. Server.Transfer可以减少客户端对服务器的请求;
Server.Transfer跳转页面的状态与Response.Redirect类似。但是它们之间还是有一些差别的。
首先,用Server.Transfer迁移到另一个页面保持着服务资源。而不是简单的通知浏览器服务端换了个页面并迁移请求。这意味着你不需要携带更多的Http请求,因此可以减轻服务端的压力而使你的应用运行得更快。
但是,注意:因为"Transfer"过程只能在那些在同一服务端的站点上,你不能使用Server.Transfer使用户跳转到外部的站点。这点只有Response.Redirect能做到。
第二,Server.Transfer维持着浏览器原始的URL,这对于流线型的数据入口技术,虽然它有可能导致调试的时候的数据混乱还有,Server.Transfer方法还有二个参数的重载方法——"preserveForm"如果你将其设置为True(默认情况是False), 使用一个状态比如:Server.Transfer("WebForm2.aspx", True), 现存的请求字符串和所有的Form里的变量将被保持并提交到你的 目标页。
查了些文档,发现两者区别还是很明显的。根本上,Response是叫浏览器去重新转向到指定的网页,而Server自然是发生在服务器端为主了,因此会有以下区别:
1. Server.Transfer只能够转跳到本地虚拟目录指定的页面,而Response.Redirect则十分灵活;
2. Server.Transfer可以将页面参数方便传递到指定页面;
3. 使用时,Server.Transfer跳到别的页面后,浏览器显示的地址不会改变,有时反而会造成误会,当然也有些场合需要这样的效果;
4. Server.Transfer可以减少客户端对服务器的请求;
Server.Transfer跳转页面的状态与Response.Redirect类似。但是它们之间还是有一些差别的。
首先,用Server.Transfer迁移到另一个页面保持着服务资源。而不是简单的通知浏览器服务端换了个页面并迁移请求。这意味着你不需要携带更多的Http请求,因此可以减轻服务端的压力而使你的应用运行得更快。
但是,注意:因为"Transfer"过程只能在那些在同一服务端的站点上,你不能使用Server.Transfer使用户跳转到外部的站点。这点只有Response.Redirect能做到。
第二,Server.Transfer维持着浏览器原始的URL,这对于流线型的数据入口技术,虽然它有可能导致调试的时候的数据混乱还有,Server.Transfer方法还有二个参数的重载方法——"preserveForm"如果你将其设置为True(默认情况是False), 使用一个状态比如:Server.Transfer("WebForm2.aspx", True), 现存的请求字符串和所有的Form里的变量将被保持并提交到你的 目标页。
相关文章推荐
- Response.Redirect、Server.Transfer、Server.Execute的区别
- Response.Redirect与Server.Transfer区别
- Server.Transfer,Response.Redirect的区别
- Server.Transfer 和 Response.Redirect 区别
- Response.Redirect 和Server.Transfer的区别
- asp.net中Response.Redirect与Server.Transfer的区别分析
- Response.Redirect和Server.Transfer的区别
- Response.Redirect与Server.Transfer区别
- 页面跳转 Server.Transfer和 Response.Redirect的区别
- Server.Transfer,Response.Redirect的区别
- asp.net中 Server.Execute() Server.transfer()与Response.Redirect()的区别
- Response.Redirect,Server.Execute和Server.Transfer的区别
- Response.Redirect(),Server.Transfer(),Server.Execute()的区别
- Response.Redirect(url)和Server.Transfer(url)的用法的区别
- Response.Redirect(),Server.Transfer(),Server.Execute()的区别
- 页面跳转中Server.Transfer、Server.Execute和Response.Redirect的区别
- Server.Transfer和Response.Redirect 区别
- Response.Redirect和Server.Transfer的区别
- Response.Redirect和Server.Transfer的区别
- Server.Transfer和Response.Redirect的区别