location.hashでのページング

| コメント(0) | トラックバック(0)



多分これで決まりだと思うのだが、location.hashは結局なんのイベントも起こさないのでsetTimeoutみたいなのを使ってビジーループ風味に処理しないといけないっぽい。要は人間様が気づかなければそれでいいのだが、無駄にシステムリソースを食いそうでそれがなんか嫌なんだけどな。というわけで、ページングは今まで明示的にAjax.Requestを呼び出していたのだが、それただlocation.hashを変更するようにする。



element.onclick = function () {
...
location.hash = 'p=' + page++;
}

これを、PeriodicalExecuterに感知してもらって、そこからAjax.Requestを呼ぶ感じ。



function callback () {
if (needs_update) {
new Ajax.Request(...);
}
};
new PeriodicalExecuter(callback, 0.5);

一番のポイントはこの0.5という数を変更して、ユーザーがストレスと感じないようにしつつ、システムリソースを最低限にすることだろう。さてどうしたもんかな。


Author

Daisuke Maki (a.k.a lestrrat): Perl hacker, Director of Japan Perl Association, YAPC::Asia Tokyo Organizer (2009-2012), Fluent in Japanese, English. Ex-Brazilian (sorta)

#perl #c #ruby #java #mysql #english #japanese #opensource #stf #cooking #scotch #cigar


このエントリーをはてなブックマ
ークに追加

翔泳社よりモダンPerl入門(2010)を出版させていただいております。できれば内容をアップデートしたいので是非皆様・・・現在の在庫処理にお力をお貸しください!><

月別アーカイブ