私は AJAX アプリを作成していますが、ユーザーがアプリ内を移動するときに、ページがリロードされなくてもアドレス バーの URL が更新されるようにしたいと考えています。基本的に、ユーザーが任意の時点でブックマークして、現在の状態に戻れるようにしたいと考えています。
AJAX アプリで RESTfulness を維持するにはどうすればよいのでしょうか?
ベストアンサー1
これを実現するには、location.hash
AJAX の更新によって状態が変化するタイミングを操作して、個別の URL を設定する必要があります。たとえば、ページの URL が次の場合:
クライアント側関数がこのコードを実行した場合:
// AJAX code to display the "foo" state goes here.
location.hash = 'foo';
すると、ブラウザに表示される URL は次のように更新されます。
これにより、ユーザーはページの「foo」状態をブックマークし、ブラウザの履歴を使用して状態間を移動できるようになります。
このメカニズムを導入したら、フラグメント識別子 (# の後の部分) はサーバーに送信されないため、JavaScript を使用してクライアント側で URL のハッシュ部分を解析し、適切な初期状態を作成して表示する必要があります。
Ben Alman の hashchange プラグインjQuery を使用している場合、後者は簡単になります。