Really Simple History


ajaxで画面の一部を更新する際、通常だとブラウザの「戻る」でユーザが所望する画面遷移が実現できないことがあるのだけれど、このライブラリを利用すると問題を解決することができる。

Really Simple History (RSH): Ajax history and bookmarking library
http://code.google.com/p/reallysimplehistory/

使い方は、ソースをダウンロードするとサンプルがついているのでソースを読めばわかりやすい。
このライブラリに関してprototype.jsと併用する際に生じる問題を以前調べていたのだけど、すっかり忘れていたのでメモ。
rsh.js中でJSONを利用するために付与されているjson2007.jsというソースがついているのだけれど、prototype.jsを利用する場合はこれが不要になるが、以下の記述をrsh.jsの履歴管理用のインスタンスを作る際に加えてオーバーライドしておく。

// 付属のjson2007.jsを利用する場合
//window.dhtmlHistory.create();
// prototype.jsを利用する場合
window.dhtmlHistory.create({
toJSON: function(o) {
return Object.toJSON(o);
}
, fromJSON: function(s) {
return s.evalJSON();
}
});
// 後は使い方は同じ
var yourListener = function(newLocation, historyData) {
// (戻る・進むボタン押下時処理記述)
}
window.onload = function() {
dhtmlHistory.initialize();
dhtmlHistory.addListener(yourListener);
};

本当、すぐ忘れる様になってしまった。
そして何かあるとblogを検索するとキーワードや解決策が見つかる様になってしまった。

<参照>
Really Simple HistoryでAJAXにブックマーク機能と履歴機能を付加する – Builder ZDNet Japan
http://builder.japan.zdnet.com/news/story/0,3800079086,20368617-2,00.htm