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