4

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

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

所以,在这方面::

到目前为止我只知道没有涉及到往返server.Transfer()但是,这两种方法在此往返过程中的各个阶段会产生性能差异吗?此外,还有哪些其他考虑因素或功能可以使 Server.Transfer() 更快

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

4

1 回答 1

2

但是,这两种方法在此往返过程中的各个阶段会产生性能差异吗?

  • 在 Server.Transfer 上

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

    1. 向客户端发出(通常)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,或保留请求上下文(表单数据、标题等)以进行处理,处理可能从客户端刷新

于 2013-08-30T08:51:06.107 回答