たとえば、jQueryでは、リージョンに何かをロードするためのリンクを設定すると、history.pushStateを呼び出す前にコンテンツをロードする必要がありますか?AJAXのloadとhistory.pushStateの推奨される順序は何ですか?
また、history.pushStateを呼び出した後にコンテンツを読み込む必要がありますか?
$('#link').click(function() {
history.pushState(null, null, 'newUrl');
$('#region').load('regionContent');
return false;
});
かつて私はコンテンツがないまでURLは変更されないと感じ、私はより頻繁に、後者を見てきました(例えばhttps://github.com/blog/760-the-tree-slider)ので、私は考えられているので思ったんだけど、私には望ましいと思われますベストプラクティス。
この実装が正しく理解されていれば、コンテンツが読み込まれる前に履歴をプッシュする必要があることを意味します。実装の統一性(すなわち、コンテンツが単一のイベントに応答してのみロードされる)以外は、これが望ましい理由は何か? –
また、コンテンツをロードする前に履歴をプッシュすることは、プッシュするURLをサーバー上で決定する必要がある(たとえば、POST-REDIRECT-GETによる検証 - 検証が成功した場合は新しいURLをプッシュし、失敗した場合は、URLをプッシュしないでください)。 –
私は最初に状態を更新すると感じる傾向があります。次にコンテンツを読み込むことは、これがWebが過去20年間働いて仕事をしてきた方法であるためです。あなたは新しいページに移動し、状態が変化し、新しいコンテンツを読み込みます。コンテンツがエラーページである可能性があります。たとえば、状態を存在しないページに変更すると、現在の作業状態にエラーを表示するのではなく、コンテンツが存在しない状態の404になることが期待されます。 – balupton