ajaxで画面の一部を更新する際、通常だとブラウザの「戻る」でユーザが所望する画面遷移が実現できないことがあるのだけれど、このライブラリを利用すると問題を解決することができる。
Really Simple History (RSH): Ajax history and bookmarking library
使い方は、ソースをダウンロードするとサンプルがついているのでソースを読めばわかりやすい。
このライブラリに関して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