Really Simple HistoryでAJAXにブックマーク機能と履歴機能を付加する
翻訳校正:石橋啓一郎
Really Simple History(RSH)は、AJAXでアプリケーションの状態を保持し、ブラウザによるナビゲーションを可能にするものだ。この記事では、RSHの概要と使い方について簡単に説明する。
AJAXベースのアプリケーションに取り組んでいれば、その動的な性格から、アプリケーションのどこかでページをブックマークすることができないことに気づいただろう。これは、ユーザーが「戻る」ボタンを押した時にも問題になる。ブックマークと履歴の問題を解決する方法の1つが、Really Simple History(RSH)フレームワークを使うことだ。
RSHの必要性は、動的なウェブサイトとブラウザ組み込みの操作方法の組み合わせに固有の問題から生じている。ブラウザは複数のページから成るサイトを念頭に開発されており、AJAXを用いた動的アプリケーションは前提としていない。
問題は、ユーザーがAJAXを用いたサイトの外側でナビゲーションの操作をした場合に生じる。ユーザーがサイトに戻ってきた時には、ユーザーはその結果は起こることに驚くことになる。前にサイトを訪れた時の状態が維持されないからだ。
この問題を解決するためには、ページが更新されたり、ブラウザのナビゲーションボタンでページを移動して回った場合でも、アプリケーションが状態を維持できる方法が必要となる。これによって、ユーザーはサイトに戻ってきたりブックマークしたりすることができるようになる。
RSHは元々Brad Neuberg氏が2005年に開発したもので、今ではGoogle Codeのサイトで管理されている。最新バージョン(0.6)は2007年12月3日にリリースされたもので、Internet Explorer 7、Safari、Operaをサポートしている。
内部の仕組み
RSHのすばらしい機能の1つは、標準のJavaScriptだけで作られていると言うことだ。サードパーティのライブラリなどの他のものには依存していない。RSHはアプリケーションデータを内部のJavaScriptキャッシュに保存しておき、ブックマークや「戻る」ボタンを使って以前の状態のアプリケーションに戻ってこれるようにしている。
RSHのフレームワークは、dhtmlHistoryとhistoryStorageという2つのJavaScriptクラスから成っている。dhtmlHistoryクラスは、AJAXアプリケーションの履歴に関する抽象化を行う。ページは現在のURLとアンカーハッシュを使ってブラウザの履歴に追加される。さらに、AJAXアプリケーションは履歴リスナとして自分自身を登録する。ユーザーが「戻る」や「進む」のボタンで移動を行うと、履歴イベントがトリガされ、ブラウザの新しいURLとこれまでの履歴データが渡される。
historyStorageクラスは、履歴データを保存することを可能にするものだ。historyStorageクラスは、ユーザーがサイトから移動してしまった時にサイトのデータが失われる問題を解決する。historyStorageクラスはハッシュテーブル(ブラウザ履歴を保存する際にハッシュが使われる)を処理するメソッドを持っている。このクラスを使うと、ユーザーがページを移動する際にデータを保存することができる。
ハッシュはRSHの重要な側面だ。ハッシュはURLの最後に#記号に続けて記される。これは、RSHによる履歴を閲覧する機能を提供するのに使われる。
- 今日のトップ記事
- 2日前
- 4日前
- 6日前
- 7日前
- ホワイトペーパー
- 読者投票
- 話題のタグ
MS、Vistaとの互換性をチェックできる「Compatibility Center」リリースへ
「似非」SOAを見破る10の方法
Firefox 3のアドオンやテーマ管理を容易にする
openSUSE 11.0を試してみた
フォトレポート:世界各国の優秀な技術者がパリに集結--Imagine Cup 2008世界大会
バッチ処理でデータベース活用:4つの課題と5つの解決ポイント
Rubyでどう書く?:RubyでWord文書を作成する
Techno Exchange
ZDNet Japan Green IT
「未来の、その先」をどう提言していくか
今知るべき仮想化情報
DELL連載第4回〜「Microsoft System Center」