さまざまな状況で AJAX アプリケーションで戻るボタンを機能させるためのいくつかのアプローチに精通していますが、特定のシナリオで適切に機能するソリューションは見つかりませんでした。
私が扱っているページは、サイトの検索インターフェイスです。通常の検索ボックスに用語を入力し、[移動] をクリックして検索結果ページに移動します。検索結果ページには、探しているものを見つけるために検索結果をフィルタリング/ソートするための UI コントロールがたくさんあります。これらのコントロールによってトリガーされる操作は、完了するまでに (比較的) 長い時間がかかる場合があります (例: 数秒)。
ユーザーが最初に結果をフィルタリング/ソートしている場合、この待ち時間は問題ありません...素敵なAJAXスピナーなどがあります...しかし、ユーザーが検索結果をクリックしてから[戻る]ボタンをクリックすると、ページは、クリックしたときの状態に即座に復元されます。
IFRAME/フラグメント識別子をページ履歴の辞書として使用して状態を復元できますが、最終的には、ユーザーが最初に戻るボタンを押したときに最初のページが読み込まれ、(再) AJAX クエリを作成して取得します。ページの状態が戻ると、AJAX スピナーがトリガーされ、さらに数秒間待機します。
ユーザーが BACK ボタンでページに戻ったときに、この種のページの 2 段階のロードを必要としないアプローチはありますか?
追加するために編集:私はjqueryに部分的ですが、他のライブラリ/ツールキットに依存するソリューション、またはスタンドアロン/生のjavascriptであるソリューションに満足しています。
追加するために編集: Cookie/セッションを回避しようとしていることを追加する必要がありました.
編集:マット、提案された解決策(フラグメント識別子を介してページ変更イベントをトリガーする)について詳しく説明できますか?これが同じページで戻るボタンのクリックにどのように役立つかがわかりますが、特定の結果をクリックした後に検索結果ページに戻ることはありません。