web-dev-qa-db-ja.com

AJAXでページを読み込んでいます。ユーザーがコンテンツを呼び出すとき、またはコンテンツが到着したときに、ブラウザーのアドレスを変更する必要がありますか?

AJAX=を使用してページをロードし、それに応じてブラウザーのアドレスバーを変更して、スムーズなエクスペリエンスを実現しています。

私の疑問は、ユーザーが新しいページを呼び出したときにブラウザのアドレスバーを変更する必要があるかどうかです(ユーザーがリンクのクリックなどの要素を操作したとき) )またはページが表示され始めたら?

考慮すべき事項:

  1. ページは、置き換えられるコンテンツの遷移とともにフェードアウトします
  2. 新しいコンテンツはフェードインで入ります
  3. ページでタイムアウトエラーが発生する可能性があります(いくつかの問題があり、正しくロードできませんでした)
  4. ページは実際には存在しない可能性があります(404)
  5. コンテンツが到着するまでに数秒かかる場合があります

両方のオプションの理由はありますが、ポイント3と4をさらに重視すべきかどうかはわかりません。また、ケースが4の場合、住所を変更する必要がありますか?

4
Alvaro

この答えは、私の研究ではなく、単一ページアプリケーションの設計経験に基づいています。

次の理由により、新しいページが呼び出されたときにURLを変更します。

  • 標準のブラウザの動作を模倣して、ページの読み込みがユーザーが期待する方法または慣れた方法で機能するようにすることをお勧めします。

  • 新しいページの読み込みに時間がかかる場合、ユーザーはブラウザを更新してリクエストを再送信することがあります。この時点までにURLが変更されていない場合、予期せずに前のページに戻されます。使用されているサーバー要求パターンによっては、ユーザーが入力したフォームデータなどが消去される場合があります(たとえば)。

  • コンテンツのロード後にURLが変更された場合(document.addEventListener("DOMContentLoaded", function(){});を使用するなど)、Googleのフォントサーバーの呼び出しなど、HTTPリクエストの1つがハングした場合、URLが変更されるまで非常に長い時間待機するリスクがあります。この間、ユーザーはページが実際にロードされたと考え、古い(間違った)URLをコピーして誰かと共有する可能性があります。

4
Doug Proctor