質問

私たちはPageA.aspxを呼び出しますどのようにユーザーを持っています。このユーザーはPageB.aspxに取得する必要があります。明白な方法は、単純にPageB.aspxに送信し、ハイパーリンクを持っています。それは私がページ間を取得する他の方法について考えました。一つは、クライアント側のジャンプを行うためにはJavaScriptを使用することができます。一見かさばるサーバ側のリダイレクトもあります。

私が知りたいのは、もしあれば、これらの異なる方法間の性能ヒットするものですされています。私は、サーバー側を前提とするつもりだ、もう少し重い重量が、どのくらいでているのですか?これらの方法は、異なるスケールますか?それを別の対1つの方法を行っているとの任意の隠された問題はありますか?

ありがとうございます。

役に立ちましたか?

解決

実際のリンクは、ほとんどの状況に最適です。すべてのユーザエージェントはリンクがあるとそれが何を表すのかを知っています。これは、SEO、アクセシビリティとユーザビリティのために最適です。

サーバー側(ポストバックを経由して)リダイレクトあなたは、たとえば、リンクがクリックされたかについての詳細を追跡する必要がする必要がある場合は良いです...しかし、それは、サーバー(およびユーザーまでの時間)に追加のリクエストです。また、SEO(ら)botchesので、スパイダリングや、アクセシビリティを制御または無視されている適切な「ウェブアプリ」内の唯一の現実的な選択肢です。

JSはあなたに追跡の力を与えることができますが、それはJSが無効になっている環境では(独自に)役に立たないのです。それは考慮すべき何かですので、サーバーに戻す活動を送信すると、負荷を追加します。

のあなたがそれを必要とする場合は、を、標準のリンクを使用して、物事を追跡するために、クリックイベントをフックするためにjqueryのを使用することを検討してください。しかし、実際に...あなたがそれを必要とする場合にのみ、それはわずかなユーザーエクスペリエンスが遅くなりますようます。

要するに

:あなたが正当な理由をしていない限り、標準に固執しない

他のヒント

私は重要な問題は、なぜユーザーはページAからページBに行ったのだと思いますか?彼らはこれが起こることを引き起こすために何をしますか?

それは彼らが(すなわち、それは「ポスト」の一部であった)、ユーザーは(ページAがページBに異なっていることを知っている彼らは、いくつかの異なるリソース(「取得」)を要求したため、彼らはあなたのサーバーにデータを提出しなかったされました概念的に同じリソースが、それの異なるビュー)、または他の何か?

などページBがページAなしでアクセス可能かどうかなどの他の考慮事項は、(それはブックマークすることができ、それが自身のURL、それはブラウザで別のURLと見なされるべきですがありますか?)ご案内します。

これは、このようなものを理解せずにあなたの「ベスト」ソリューションを与えることは難しいます。

Server.TransferをまたはのResponse.Redirectを使用するように、これらの2つのアプローチの違いは、ここではカバーされています:

Server.Transferの対。 Response.Redirectをする のResponse.RedirectとServer.Transferをする とき私はPostBackURL上Server.Transferのを使うのでしょうか?

これらの

ああ、どちらもあなたが、その代わり、代わりにコントローラのアクションにルーティングする必要があるASP.NET MVCアプリケーションに適しています。

<のhref = "http://weblogs.asp.net/mikebosch/archive/2008/02/02/asp-net-mvc-tip-2-redirecting-to-another-action-and-passing-情報・ツー・it.aspx」のrel = "nofollowをnoreferrer"> http://weblogs.asp.net/mikebosch/archive/2008/02/02/asp-net-mvc-tip-2-redirecting-to-another -action-とパッシング情報ツーit.aspxする 他のコントローラ

でアクションにリダイレクト

私の一般的なアプローチは、データを表示する任意のページを取得する必要がありますということです。投稿は、データを受け入れ、それを返さない、私見必要があります。

そこで私は(ほとんど)常にポスト後にリダイレクトを行います。これは、ユーザー・エラーを防ぎマイナーなコストです。

一つには、それは、同じデータの複数の投稿を防ぐ - 何らかの理由でユーザーリロード場合(または戻るボタンを打つ)、私は、データの再提出したくない

検索エンジンの問題は、あまりにも、重要なものです。ページBは、あなたがインデックス化するページであれば、それはjavascriptやポストを経由して検出されません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top