Web サイト内を移動する際のパフォーマンスを向上Server.Transfer("default.aspx")
させるために使用する方法。これを使用すると、アドレスバーの URL が変更されません。server.transfer で新しい URL を取得するにはどうすればよいですか。または(そうでない場合)どうすればパフォーマンスを 向上させることができますか。Response.Redirect("default.aspx")
2 に答える
との違いを理解する必要がありますResponse.Redirect("page.aspx")
。Server.Transfer("page.aspx")
サーバー.転送:
URL は変更されないため、複数の
Server.Transfer
ステートメントで URL が変更されない可能性があるため、ブラウザで実行されているページが不明であるため、デバッグ目的には使用できません。フォーム上のすべてのコントロールからのデータを次のページに投稿し、そこから以下を使用してアクセスできます。
Request.Form["myTextBox"]
同じドメイン内でのみ機能し、現在のドメイン名の外部にはリダイレクトされません。
ブラウザからサーバーへの往復のコストがかからないため、 に比べて高速
Response.Redirect
です。
Response.Redirect
いつ使用するか、いつ使用するかは、最善の判断で行ってくださいServer.Transfer
。あるページから別のページにフォーム コントロールのデータを送信する場合にのみ、「Server.Transfer」を使用することをお勧めします。そうしないと、デバッグの悪夢が発生します。
このアプローチがあまり好きかどうかはわかりませんが、使用を主張する場合は、応答がブラウザに到達してそこで処理されたら、をServer.Transfer
使用してブラウザのアドレスバーのURLを変更できます。HTML5 History API
新しいブラウザのみがこの機能をサポートしていることに注意してください。ただし、時間が経つにつれて、これは問題になるのをやめるはずです。
履歴の現在の状態を操作するには、ページにJavaScriptが必要です。これは次のようになります。
<script type="text/javascript">
window.history.pushState({ path: <pageurl> }, '', <pageurl>);
</script>
プレースホルダーは、<pageurl>
サーバー上で、通話で実際に処理しているページの実際のURLに設定する必要がありますServer.Transfer
。
これまでにネット上でhtml5履歴APIを使用する方法の例はたくさんあります(例: http: //html5demos.com/history ) 。