|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
也许唯一可以让世人留恋Java的理由就剩下它的王牌——跨平台。1、Response.Redirect():
Response.Redirect办法招致扫瞄器链接到一个指定的URL。当Response.Redirect()办法被挪用时,它会创立一个应对,应对头中指出了形态代码302(暗示方针已改动)和新的方针URL。扫瞄器从服务器收到该应对,使用应对头中的信息收回一个对新URL的哀求。
这就是说,利用Response.Redirect办法时重定向操纵产生在客户端,统共触及到两次与服务器的通讯(两个往返):第一次是对原始页面的哀求,失掉一个302应对,第二次是哀求302应对中声明的新页面,失掉重定向以后的页面。</P>2、Server.Transfer
Server.transfer是IIS5.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的呆板考证反省(MachineAuthenticationCheck,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和Server.Transfer的区分:
Server.Execute("another.aspx")和Server.Transfer("another.aspx")区分:
Execute是从以后页面转移到指定页面,并将实行前往到以后页面.
Transfer是将实行完整转移到指定页面.
<P>总结:
在收集形态较好的情形下,Redirect(url)办法效力最高!!可重定向到统一台或非统一台服务器上的aspx或非aspx(html)资本Server.Transfer办法和Server.Execute办法最天真!!但只能转到统一Application目次下,也有大概招致不希冀的了局产生,Server.Execute办法占用资本最多。对于new隐藏成员的作用,往往是出于使用了一个第三方类库,而你又无法获得这个类库的源代码,当你继承这个类库的某个类时,你需要重新实现其中的一个方法,而又需要与父类中的函数使用同样的函数,这是就需要在自定义的子类中把那个同名函数(或成员)加上new标记,从而隐藏父类中同名的成员。 |
|