0

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

私が知りたいのは、もしあれば、これらの異なる方法の間のパフォーマンスの影響です。サーバー側はもう少し重いと思いますが、どのくらいですか?これらの方法のスケーリングは異なりますか? ある方法と別の方法でそれを行うことに隠れた問題はありますか?

ありがとう!

4

3 に答える 3

3

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

たとえば、クリックされたリンクの詳細を追跡する必要がある場合は、サーバー側の (ポストバック経由の) リダイレクトが適していますが、これはサーバーへの追加の要求 (およびユーザーへの時間) です。また、SEO (その他) も台無しにするため、スパイダリングやアクセシビリティが制御または無視される適切な「Web アプリ」内で実行可能なオプションにすぎません。

JS は追跡機能を提供しますが、JS が無効になっている環境では (単独では) 役に立ちません。アクティビティをサーバーに送り返すと負荷がかかるため、これを考慮する必要があります。

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

要するに、そうしない正当な理由がない限り、標準に固執してください。

于 2009-05-12T22:50:48.997 に答える
1

重要な質問は、ユーザーがページ A からページ B に移動した理由です。これを引き起こすために彼らは何をしますか?

別のリソースを要求したためか (「取得」)、サーバーにデータを送信したか (つまり、「投稿」の一部であったか)、ユーザーは PageA が PageB と異なることを知っているか (概念的には同じか)リソース、しかしそれの異なるビュー)または何か他のもの?

PageA なしで PageB にアクセスできるかどうか (ブックマークできるか、独自の URL を持っているか、ブラウザーで別の URL として表示されるか) などのその他の考慮事項が参考になります。

このことを理解せずに「最良の」ソリューションを提供することは困難です。

Server.Transfer または Response.Redirect の使用に関しては、これら 2 つのアプローチの違いがここで説明されています。

Server.Transfer 対。Response.Redirect Response.Redirect と Server.Transfer PostBackURL で Server.Transfer を使用するのはいつですか?

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

http://weblogs.asp.net/mikebosch/archive/2008/02/02/asp-net-mvc-tip-2-redirecting-to-another-action-and-passing-information-to-it.aspx リダイレクト他のコントローラーでアクションする

于 2009-05-12T22:58:50.717 に答える
0

私の一般的なアプローチは、データを表示するページはすべて取得する必要があるというものです。投稿はデータを受け入れる必要がありますが、返してはいけません、IMHO。

したがって、私は(ほぼ)常に投稿後にリダイレクトを行います。これは、ユーザー エラーを防ぐ小さなコストです。

1 つは、同じデータの複数の投稿を防止することです。ユーザーが何らかの理由で再読み込みした場合 (または戻るボタンを押した場合)、データを再送信したくありません。

検索エンジンの問題も重要です。PageB がインデックスに登録したいページである場合、javascript や投稿では見つかりません。

于 2009-05-13T02:52:46.533 に答える