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 に答える