ASP.NET Ajax を使用して簡単なフォト アルバム アプリを作成しています。
アプリは非同期 Ajax 呼び出しを使用して、ブラウザーの URL を変更せずに、アルバム内の次の写真を事前に読み込みます。
問題は、ユーザーがブラウザの戻るボタンをクリックしたときに、アプリが前の写真に戻らず、代わりにアプリケーションのホームページに移動することです。
ブラウザーをだまして各 Ajax 呼び出しを閲覧履歴に追加させる方法はありますか?
ASP.NET Ajax を使用して簡単なフォト アルバム アプリを作成しています。
アプリは非同期 Ajax 呼び出しを使用して、ブラウザーの URL を変更せずに、アルバム内の次の写真を事前に読み込みます。
問題は、ユーザーがブラウザの戻るボタンをクリックしたときに、アプリが前の写真に戻らず、代わりにアプリケーションのホームページに移動することです。
ブラウザーをだまして各 Ajax 呼び出しを閲覧履歴に追加させる方法はありますか?
更新: HTML4 機能を廃止する HTML5 History API (pushState、popState) が追加されましたhashchange
。History.jsは、ブラウザー間の互換性と、HTML4 ブラウザーのオプションの hashchange
フォールバックを提供します。
この質問に対する答えは、これらの質問に対する私の答えとほぼ同じです。
要約すると、hashchange プロセス全体と ajax の追加について説明している次の 2 つのプロジェクトを確認することをお勧めします。
jQuery History (ハッシュを使用してページの状態を管理し、変更にバインドしてページを更新します)。
jQuery Ajaxy (jQuery History の ajax 拡張機能であり、完全な ajax Web サイトを可能にする一方で、完全に目立たず、適切に分解可能です)。
MSDN には、 ASP.NET AJAX でのブラウザー履歴の管理に関する記事があります。
多くの Web サイトでは、非表示の iframe を使用してこれを行います。iframe を新しい URL で更新するだけで、閲覧履歴に追加されます。あとは、アプリケーションがこれらの「戻るボタン」イベントにどのように反応するかを処理するだけです。iframe の状態/場所を検出するか、その URL を使用してページを更新する必要があります。
シンプルで軽量なPathJS ライブラリを使用できます。
使用例:
Path.map("#/page1").to(function(){
...
});
Path.map("#/page2").to(function(){
...
});
Path.root("#/mainpage");
Path.listen();
戻るボタンに関するすべての解決策について、それらのどれも「自動」ではありません。ひとつひとつのページで、ページの状態を維持するためにいくつかの作業を行う必要があります。いいえ、ブラウザを「だます」方法はありませんが、戻るボタンを使用するのに役立つ優れたライブラリがいくつかあります。
情報: Ajax ナビゲーションは、今後の IE8 の標準機能です。
3.5 SP1 アップデートでは、ASP.NET ajax でブラウザー履歴と戻るボタンがサポートされるようになりました。