Scaling Rails Episode #5 - Advanced Page Caching

Page Cacheのもう少し詳しい話

Pagination

  • will_paginateでページネートしてるときpage cacheしてるとページリンクを押しても遷移しない
  • http://127.0.0.1:3000/posts?page=2のようなクエリストリングをページキャッシュでは扱えないから
  • クエリストリングなしのページがキャッシュされてしまう
    • Cached page: /posts.html (0.9ms)
  • pageパラメータがURLにのっかるようにroutes.rbを修正する
  • map.posts_with_pages '/posts/page/:page', :controller => 'posts', :action => 'index'のように
  • そんでこういうURLでページングできて
  • こういう感じでページキャッシュされる
    • Cached page: /posts/page/2.html

Dynamic Data

  • Dynamic Dataをキャッシュするといろいろ困ったことが起こる
  • ログイン状態とか
  • ログインしていない状態でページキャッシュされてたらログイン後にログイン前のキャッシュページが表示されてしまう
  • ajax callbackで更新することはできるはできるが・・JavaScriptが動かない環境だと大混乱
  • ログイン状態とかはキャッシュすんな