Server.Transfer()& Response.Redirect(),到目前为止很多关于这个主题的很多教程/细节.然而,最近我在Apress书中注意到:C#2010中的Pro
Asp.net 4,它提到Server.Transfer()实际上更快.
关于这个主题的许多教程/讨论很好,但是大多数教程似乎都没有说明哪一个更快.
所以,在这方面::
到目前为止,我只知道server.Transfer()中没有涉及往返行程.但是这两种方法在这次往返过程中的各个阶段是什么造成了性能上的差异?
此外,还有哪些其他注意事项或功能使Server.Transfer()更快?
如果除了往返解释之外没有任何其他功能,它在速度方面是否真的会有很大的不同?
最佳答案
But what are the various stages in this round trip process in both
these methods that created difference in performance??
>在Server.Transfer上
>目标页面开始执行
>在Response.Redirect上
> a(通常)HTTP 302发给客户端,(网络延迟)
>客户端收到响应并向服务器发出请求(网络延迟)
>服务器处理请求,通过其可能的模块(身份验证,授权,URL重写等)…
> asp.net处理它的一些事件(begin_request,一些授权处理)
>您将被渲染到Server.Transfer的第1步,目标页面开始执行
Also, what are other considerations or features that makes
Server.Transfer() faster ??
上面的每一步本身都是使Server.Transfer更快的功能.
If there aren’t any other feature other than roundtrip explanation,
does it will really make much of a difference in terms of speed?
差异很大. Server.Transfer大约是内存处理和毫秒,Response.Redirect是关于网络延迟和秒.
但是,Server.Transfer和Response.Redirect之间的选择不仅仅取决于你的目的还有性能:更改客户端导航栏中的url,或者保留请求上下文(表单数据,标题……)以进行处理,处理可能从客户端刷新