0

ajax呼び出しを実行し、ページの下部に結果(ダイナミックHTML)を生成する検索ページがあります。問題は、ユーザーが結果(別のサイト)に移動してから戻るボタンを押すと、元のページとクエリが表示されますが、ダイナミックHTMLが失われることです。

私は以前にjquery履歴プラグインを使用しました。ユーザーがピザを検索する場合は、URLに「#pizza」を追加する必要があります。そして、私のページが読み込まれるたびに、#の後に続く状態から状態を復元できます。ただし、これにはajax呼び出しをやり直し、検索を再実行し、ダイナミックHTMLを再構築する必要があります。

ユーザーが「戻る」を押すと、結果ページが離れる前とまったく同じように即座に表示されるように構造化することは可能ですか?

4

2 に答える 2

2

一部のブラウザーは、ページの状態を保持しますが、保持しないブラウザーもあります。または、ブラウザがメモリ使用量を最小限に抑えようとしない限り、そうなる場合もあります。要するに、あなたはそれに頼ることはできません。

したがってmypage.html#content-hash、ajax 状態にスタイル URL を使用する場合は、JS がハッシュ タグを処理し、関連するページを再構築するときに、空のレイアウトをロードする必要があります。これは遅くなり、より多くのリクエストが必要になる可能性がありますが、そのハッシュはサーバーに送信されないため、必要なコンテンツを確認するには JS が必要です。

または、HTML5 プッシュ状態 API を使用すると、ページをリロードせずにウィンドウの完全な URL を変更できます。この場合、サーバーはページ全体を ajax としてセットアップされたのと同じ状態でレンダリングできます。Github でいくつかのリポジトリを参照すると、その方法を確認できます。フォルダをクリックすると、アニメーションが表示され、URL が変わります。URL を介してサブフォルダーに直接移動すると、そのサブフォルダーのコンテンツが既に存在する状態でページがレンダリングされます。

于 2012-05-10T18:55:01.260 に答える
0

はい、検索結果で生成されたリンクにクリックハンドラーを追加します。そして、それに検索文字列を渡します

次に、ハンドラー関数で文字列をCookie変数に保持します。ユーザーがクリックしたページから戻ってきた場合は、サーバー側で結果を検索できます。したがって、2回目の呼び出しなしで結果が表示されます。

于 2012-05-10T18:57:28.047 に答える