0

フォーム内の何かが変更されるたびに、Web アプリケーションに POST データを自動的に送信する検索フォームがあります。Web アプリケーション (PHP/CodeIgniter で作成) は、POST または GET を受け入れ、適切な結果を返し、ページに表示します。すべて正常に動作します。

現在、私の懸念は、現在の検索結果を取得するために必要なクエリ パラメータが URL に反映されていないことです。そのため、誰かがアドレスをコピーして共有した場合、その URL をクリックしたユーザーは意図したデータを表示できません。ブックマークなどと同じ問題。

jQuery でクエリ文字列を更新することはできますが、その場合、ブラウザは新しい URL にリダイレクトされます (その場合、Web アプリケーションは実際には非 JS で動作するように作成されているため、ページには正しい検索結果が表示されます)。このリダイレクトは、Ajax 化の努力が無駄になったことを意味します。

ブラウザをリダイレクトせずにハッシュ # を使用してアドレスを更新できるようですが、JS 以外の状況ではその情報を使用できないようです (GET 経由でその情報にアクセスできません)。

この問題にはどのようなアプローチを使用する必要がありますか?

4

1 に答える 1

2

HTML5 ブラウザは、ページを更新せずにブラウザの URL を更新できるHistory pushStateをサポートしています。

var stateObj = { foo: "bar" };
history.pushState(stateObj, "page 2", "bar.html");

history.jsでサポートしていないブラウザのサポートを追加できます

于 2012-10-16T15:45:15.850 に答える