2012-08-05 (日) [長年日記]
_ tDiaryでGitHubみたいなページ遷移をするテスト
誰か名前をつけて欲しいが。 > GitHubみたいなページ遷移
GitHubで有名になった、ページの一部だけをajaxで書き換えるけどURLも書き換わって、しかも戻るボタンで戻れるというあれである。いろいろ調べてみるとpjaxというのがそれらしいのだが、これを使うにはサーバ側の対応(X-PJAXヘッダがセットされていたら一部のみレンダリングして返すとか)がいるみたいなので、今回はJavaScriptのみでhistory.pushStateを使って実装した。
http://elpeo.jp/diary/js/state.js
今のところa[rel=next]とかに引っ掛けてるので、最新表示のナビゲーションメニュー(「«前5日分」とか)をクリックすると発動する。日毎表示にはrelが設定されてないので発動しない。GitHubみたいなスライドアニメーションも入れてみた。しかし、戻るボタンで戻ったときにもサーバに取りに行ってる上にアニメーションしないなど、GitHubのあれに劣ってる部分が多々あるので要調査。サーバ側でdiv.mainだけ吐けるようにしてpjax使ったほうが早いかも。