带有Response.Redirect()的Server.Transfer()的性能方面

时间:2013-08-30 05:13:04

标签: asp.net .net webforms

Server.Transfer()& Response.Redirect(),到目前为止很多关于此主题的许多教程/详细信息。但是,最近我注意到Apress book: Pro Asp.net 4 in C# 2010,它提到Server.Transfer()实际上更快。

关于这个主题的许多教程/讨论很好,但是大多数教程似乎都没有说明哪一个更快。

所以,就此而言::

到目前为止,我只知道server.Transfer()中没有涉及往返行程。 但是这两个方法中的这个往返过程的各个阶段是什么造成了性能差异? 此外,使Server.Transfer()更快的其他注意事项或功能 ??

如果除了往返解释之外没有任何其他功能,它在速度方面是否真的会有很大的不同?

1 个答案:

答案 0 :(得分:2)

  

但是这两次往返过程的各个阶段是什么   这些方法造成了性能差异

  • 在Server.Transfer

    1. 目标页面开始执行
  • 在Response.Redirect

    1. a(通常)HTTP 302发布给客户端,(网络延迟)
    2. 客户端收到响应并向服务器发出请求(网络延迟)
    3. 服务器处理请求,通过其可能的模块(身份验证,授权,URL重写等)。
    4. asp.net处理它的一些事件(begin_request,一些授权处理)
    5. 您将被渲染到Server.Transfer的第1步,目标页面开始执行
  

此外,还有哪些其他注意事项或功能   Server.Transfer()更快??

上面的每个步骤本身都是使Server.Transfer更快的功能。

  

如果除了往返说明之外没有任何其他功能,   它在速度方面真的会有很大的不同吗?

差异很大。 Server.Transfer大约是内存处理和毫秒,Response.Redirect是关于网络延迟和秒。

但是,Server.Transfer和Response.Redirect之间的选择不仅仅取决于你的目的还有性能:更改客户端导航栏中的url,或者保留请求上下文(表单数据,标题......)以进行处理,处理客户端可能的刷新