- 浏览: 60254 次
- 性别:
- 来自: 广州
文章分类
最新评论
1 、 Response.Redirect():
Response.Redirect 方法导致浏览器链接到 一个指定的 URL 。当 Response.Redirect() 方法被调用时,它会创建一个应答,应答头中指出了状态代 码 302 (表示目标已经改变)以及新的目标 URL 。浏览器 从服务器收到该应答,利用应答头中的信息发出一个对新 URL 的请求 。
这就是说,使用 Response.Redirect 方法时重定向操作发生在客户端 ,总共涉及到两次与服务器的通信(两个来回):第一次是对原始页面的请求,得到一个 302 应答,第二次是请求 302 应答中声明的新页面,得到重定向之后的页面。
2 、 Server.Transfer():
Server.transfer 是 IIS 5.0 新增加的一个功能。它解决了
Response.Redirect 的两个重要的缺陷:
1 )在 Response.Redirect 中,我们得不到任何第一页的输出
2 ) Response.Redirect 会丢失 request 中的所有属性
当然我们可以通过一些其他的办法,比如 session 来搞定,可是,有些页的参数是在 request 中传过来的,这样的话,就不行了
3) Response.Redirect 需要 client 端 再发起一个请求。
server.transfer 就很好地解决了这些问题。它是从 server 端直接向下一页发起请求,不需要 client 再次发送请求 .
如果你的网页非常依赖 response.redirect, 这个小小的改变可以提高将近 25% 的效率。(根据微软文档) .
Server.Transfer 方法把执行流程从当前的 ASPX 文件转到同一服务器上的另一个 ASPX 页面。调用 Server.Transfer 时,当前的 ASPX 页面终止 执行,执行流程转入另一个 ASPX 页面,但新的 ASPX 页面仍使用前一 ASPX 页面创建的应答流 。
如果用 Server.Transfer 方法实现页面之间的导航,浏览器中的 URL 不会改变 ,因为重定向完全在服务器端进行,浏览器根本不知道服务器已经执行了一次页面变换 。
默认情况下, Server.Transfer 方法不会把表单数据或查询字符串从一个页面传递到另一个页面,但只要把该方法的第二个参数设置成 True ,就可以保留第一个页面的表单数据和查询字符串 。
同时,使用 Server.Transfer 时应注意一点:目标页面将使用原始页面创建的应答流,这导致 ASP.NET 的机器验证检查( Machine Authentication Check , MAC )认为新页面的 ViewState 已被篡改 。因此,如果要保留原始页面的表单数据和查询字符串集合,必须把目标页面 Page 指令的 EnableViewStateMac 属性设置成 False 。
server.Transfer() 有一个不足就是 : 当用户在 a.aspx 中提交了一个表单 , 然后用 Server.Transfer() 进入 b.aspx ,这时如果用户刷新 一下页面,浏览器便会问用户是否“重试 ”发送表单,如果用户点击“是”,那么,表单中的数据被重新发送到服务器 。如发送表单的作用就是为了向数据库中插入一条记录,结果导不希望发生的事——同一表单被多次加入到数据库中。
3 、 Server.Execute
Server.Execute 方法允许当前的 ASPX 页面执行一个同一 Web 服务器上 的指定 ASPX 页面,当指定的 ASPX 页面执行完毕,控制流程重新返回原页面发出 Server.Execute 调用的位置 。
这种页面导航方式类似于针对 ASPX 页面的一次函数调用,被调用的页面能够访问发出调用页面的表单数据和查询字符串集合,所以要把被调用页面 Page 指令的 EnableViewStateMac 属性设置成 False 。
Server.Execute("another.aspx") 和 Server.Transfer("another.aspx") 区别 :
Execute 是从当前页面转移到指定页面 , 并将执行返回到当前页面
Transfer 是将执行完全转移到指定页面
总结:
在网络状态较好 的情况下 ,Redirect(url) 方法效率最高 !! 可重定向到同一台或非同一台 服务器上的 aspx 或非 aspx ( html )资源
Server.Transfer 方法和 Server.Execute 方法最灵活 !! 但只能转到同一 Application 目录下 ,也有可能导致不期望的结果发生
Server.Execute 方法占用资源最多 .
发表评论
-
C#中怎么判断一个数组中是否存在某个数组值 转
2011-10-20 10:02 2165C#中怎么判断一个数组中是否存在某个数组值 作者: 李嘉 ... -
C#开发和调用Web Service (转)
2011-08-12 22:43 11481.1 、 Web Service 基 ... -
profile 实现购物车 实例(二)(转)
2011-07-29 14:27 1029上个例子,我见了两个类,一个商品类。一个购物车类。并把购物 ... -
profile 实现购物车 实例(一)(转)
2011-07-29 14:25 977首先要了解什么是Profile,不了解就查下资料跟MSDN ... -
Profile的简单的配置与操作(转)
2011-07-29 14:20 1015下面由我来给大家配置一个 Profile与 Profile ... -
Profile实现购物车(应用Profile)(转)
2011-07-29 14:15 985上面我已经介绍过了 Profile的配置和简单应用了,如果大 ... -
浅析Microsoft .net PetShop程序中的购物车和订单处理模块(Profile技术,异步MSMQ消息)
2011-07-29 11:55 1370对于Microsoft .net PetShop程序中的购物车 ... -
大型网站访问性能处理(转集)
2011-07-28 14:14 1040高性能网站性能优化与系统架构(ZT) 说说大型高并发高 ... -
不使用DalFactory和IDAL,支持多种数据库应用
2011-07-27 23:23 2MS的PetShop示例应用程序的“多层架构”被很多.NET开 ... -
ASP.NET页面刷新方法总结(顺便散分)
2011-07-07 15:17 1143先看看ASP.NET页面刷新的实现方法: 第一: ... -
c#将对象序列化为字符串和将字符串反序列化为对象
2011-06-30 11:23 1546c#将对象序列化为字符串和将字符串反序列化为对象 a ... -
provider: SQL 网络接口, error: 26 解决方法 图
2011-06-03 10:06 6542在建立与服务器的连接时出错。在连接到 SQL Server 2 ... -
Server.Execute和#include相异之处
2011-05-17 13:37 696server 是 ASP 中的一个内置对象, 有一个方法为 ... -
win7下装不了vs2008的情况
2011-04-09 01:11 666vs2005与vs2008都是镜像文件 ,所以用了虚拟光驱,装 ... -
ASP.NET + SQL 分页存储过程以及对应的类
2011-03-21 16:57 970ASP.NET + SQL 分页存 ... -
ASP.NET 错误页处理
2011-03-19 21:46 981ASP.NET 提供三种用于在出现错误时捕获和响应错误的主 ... -
asp.net 伪静态 html 后面带参数
2011-03-16 21:22 2012例如:faq_1.html?id=2 相关设置请在网上 ... -
DataFormatString的使用
2011-01-05 09:16 842在 我们从业务逻辑层获得数据实体时候,接下来的事情就是要绑定 ... -
ASP.NET 伪静态 静态页 访问不了 方法
2010-12-31 11:14 1969本站基于asp.net+UrlRewriter来实现网站伪 ... -
五种常见的ASP.NET安全缺陷
2010-11-25 23:41 824保证应用程序的安全 ...
相关推荐
你可以使用下面的代码将用户引导到另一个页面: Response.Redirect(“WebForm2.aspx”) 或者 Response.Redirect(“http://www.cnnas.com/”) Server.Transfer 也是通过一条语句将用户引导到另一页面,比如:Server....
winform Server.Execute! 很值得下载看看!资源免费,大家分享!!
oracle动态sql之EXECUTE IMMEDIATE.docx
三个页面跳转 response.redirect server.transfer sever.execute 应用
事务处理函数transaction与executeSQL解析.docx
关于重定向的几个方法和说明 Server.Transfer方法 Server.Execute方法. Response.Redirect:
Server.Execute方法执行指定的ASP程序
3.execute 6 4.然后可能会弹出一个安装 7 5.安装一些缺少的东西 8 6.execute 9 7.next到输入密码 10 8.next到execute 11 9.然鹅还没有结束 12 10.next,finish之后填密码 13 11.继续execute 14 12.到此,安装完,...
react-naitve 错误之Failed to execute aapt , react-native错误解决方案,
Perceived Response Time for Interactive Systems . Prototyping, Benchmarking, and Testing . Creating Useful Indexes . Monitoring Query Performance . Concurrency and Consistency Tradeoffs . ...
Set rs=conn.execute("select [id],[name],[level] from trees where [parent_id]="& id) If Not rs.eof Then While Not rs.eof Response.Write (") Response.Write (rs("id")) Response.Write (">") if rs(...
主要介绍了Asp Conn.execute的参数与返回值总结,数据库对象的execute方法参数与返回值总结,需要的朋友可以参考下
ASP中Server.Execute和Execute实现动态包含(include)脚本的区别,需要的朋友可以参考下。
Set conn = Server.CreateObject("ADODB.Connection") 'conn.open "driver={sql server};server=localhost;database=home_db;uid=sa;pwd=;" ConnectString = "provider=microsoft.jet.oledb.4.0;data source="&...
ASP中怎么实现SQL数据库备份 1、备份 ...cnn.execute SQL on error resume next if err<>0 then response.write "错误:"&err;.Descripting else response.write "数据备份成功!" end if
Failed to execute goal org.apache.maven.plugins:maven-clean-plugin:2.5:clean (default-clean) on project
在ASP.NET应用中,Web表单之间的导航有多种方式:用超级链接,用Response.Redirect,用Server.Transfer,或者用Server.Execute。本文将分析这四种导航方式的异同及其优缺点,帮助你选择最佳的导航方式。
46.线程池中 submit()和 execute()方法有什么区别? 47.在 java 程序中怎么保证多线程的运行安全? 48.多线程锁的升级原理是什么? 49.什么是死锁? 50.怎么防止死锁? 51.ThreadLocal 是什么?有哪些使用场景? 52....
delegate_execute.exe