HTML5の機能についていくつか質問がありましたがpushState、私が抱えている 2 つの問題については何も見つかりませんでした。私のpopstateハンドラーは次のように定義されています:
$(window).bind('popstate', function (e) {
if (!e.originalEvent.state)
return;
LoadContent({ url: e.originalEvent.state.path });
}
このLoadContent呼び出しは、ajax を使用してコンテンツ ペインを埋めるだけです。
問題 1:page1自分のサイトをブラウズすることから始めたとします。LoadContentがないので呼び出されませんstate。私の閲覧履歴が次のようになっているとします。
page1 -> (ajax)page2 -> (ajax)page3 -> (back pressed)page2 -> (back pressed)page1
ブラウザの戻るボタンを押して に移動するとpage2、すべて問題ありません。ただし、もう一度押すと、のコンテンツをロードする必要page1がありますe.originalEvent.stateがnullです。つまり、 LoadContent は呼び出されないため、コンテンツは on と同じままになりpage2ます。page1戻るときに のコンテンツをロードするにはどうすればよいですか?
問題 2:page3からに戻ると想像してくださいpage2。つまり、2 ページ目のコンテンツを ajax 経由でロードします。ここで、もう一度 を参照(つまり、手動で URL をブラウザのアドレス バーに入力) し、page3もう一度[戻る] を押して に移動するとしますpage2。2 ページ目を表示する代わりに、ブラウザーは以前に取得した のコンテンツのajax結果page2のみを表示するため、ページの残りの部分は読み込まれません。これはどのように修正できますか?
助けてくれてありがとう!