AJAX アプリのアドレスバー URL を現在の状態に合わせて変更する 質問する

AJAX アプリのアドレスバー URL を現在の状態に合わせて変更する 質問する

私は AJAX アプリを作成していますが、ユーザーがアプリ内を移動するときに、ページがリロードされなくてもアドレス バーの URL が更新されるようにしたいと考えています。基本的に、ユーザーが任意の時点でブックマークして、現在の状態に戻れるようにしたいと考えています。

AJAX アプリで RESTfulness を維持するにはどうすればよいのでしょうか?

ベストアンサー1

これを実現するには、location.hashAJAX の更新によって状態が変化するタイミングを操作して、個別の URL を設定する必要があります。たとえば、ページの URL が次の場合:

http://example.com/

クライアント側関数がこのコードを実行した場合:

// AJAX code to display the "foo" state goes here.

location.hash = 'foo';

すると、ブラウザに表示される URL は次のように更新されます。

http://example.com/#foo

これにより、ユーザーはページの「foo」状態をブックマークし、ブラウザの履歴を使用して状態間を移動できるようになります。

このメカニズムを導入したら、フラグメント識別子 (# の後の部分) はサーバーに送信されないため、JavaScript を使用してクライアント側で URL のハッシュ部分を解析し、適切な初期状態を作成して表示する必要があります。

Ben Alman の hashchange プラグインjQuery を使用している場合、後者は簡単になります。

おすすめ記事