以前最速インターフェース研究所で見たlocation.hashでパラメターを引き連れて行く方法でajaxを使ってるページのページングを実装してみた。基本的には、ページ移動をした時に
location.hash += 'p=' + page;
みたいにして連れて行くだけ。あとは現在のページを知るのに、以下のようなオブジェクトを定義して、
NikkiSite.LocationHash = function() {
this.parseHash = function(h) {
var list = h.split(/&/);
for(i = 0; i < list.length; i++) {
var chunk = list[i];
pair = chunk.split(/=/);
this.param[pair[0 = pair[1];
}
};
this.hash = location.hash;
this.hash = this.hash.replace(/^#/, '');
this.param = {};
this.parseHash(this.hash);
};
こんな感じでページをしてxmlHttpRequestを投げる:
var hash = new NikkiSite.LocationHash();
var app_uri = '/hoge.app?p=' + hash.param['p'];
new Ajax.Request (app_uri);
これで他のページにページ移動しても#p=1みたいな感じにページが常に残る。