• ブログ
  • ふぉとす
  • キーワード
  • ブックマーク
  • 写真
  • ログイン

Title

« 英語がおもしろい | Let do »
  • フラグメントキャッシュをRailsで使う。 2007-05-10 00:00:00

     ようやくといっていいと思うけど、kaeruspoonにキャッシュ機能を追加しました。
     Railsでは三つのキャッシュ機能があります。ページキャッシュにアクションキャッシュ、そしてフラグメントキャッシュです。今回はフラグメントキャッシュを使ってみました。
     使いかたはとても簡単で、キャッシュしたいビューの部分をcacheブロックに入れるだけ。

    <% cache(:action => :view_item, :part => :amazon) do -%>
    <%= view_amazon_items @amazon_items %>
    <% end -%>
    <% cache(:action => :view_item, :part => :youtube) do -%>
    <%= view_youtube_items @youtube_items %>
    <% end -%>
    <% cache(:action => :view_item, :part => :tags) do -%>
    <%= view_all_tags @all_tags %>
    <% end -%>
    <% cache(:action => :view_item, :part => :count) do -%>
    <%= view_count @count %>
    <% end -%>
    

     ひとつひとつのキャッシュを区別するために、アクションとパートでユニークにします。パートは任意の文字列かシンボルでOK。これだけで、次回からこの部分を表示するときにキャッシュが使用されます。
     このままだとキャッシュ部分の内容が更新されても表示が反映されません。更新時はキャッシュを無効にしてしまいます。

        Diary.find(params[:id]).destroy_with_tag
        expire_fragment(:action => :view_item, :part => :amazon)
        expire_fragment(:action => :view_item, :part => :youtube)
        expire_fragment(:action => :view_item, :part => :tags)
    

    これでOK。さらに、コントローラ内で、キャッシュ済みのデータは取得しないようにもできます。これでさらに高速化が望めます。

        @count = Counter.top_count unless read_fragment(:action => :view_item, :part => :count)
        @all_tags = Tag.get_all_tags unless read_fragment(:action => :view_item, :part => :tags)
        @amazon_items = AmazonList.get_items unless read_fragment(:action => :view_item, :part => :amazon)
        @youtube_items = YoutubeList.get_items unless read_fragment(:action => :view_item, :part => :youtube)
    

    とても簡単ですね。

    I read paperbacks when I go to work by train. I often worry that if I'm talked from a foreigner in English, I wouldn't know what I should do. Surely I've been reading books which was written in English. But I couldn't speak English and understand what a foreigner talks.

    Commentコメント(0) Pageリンク元(336) Append 137
  • 実践ハイパフォーマンスMySQL
    作者/アーティスト: Jeremy D. Zawodny,Derek J. Balling,林 秀幸
    メディア: 単行本
    キドリントンから消えた娘 (ハヤカワ・ミステリ文庫)
    作者/アーティスト: 大庭 忠男
    メディア: 文庫
« 英語がおもしろい | Let do »

プロフィール

おおいしつかさ

Amazon商品の一覧

人気の記事ベスト10

  • 1.apache+mod_proxy_balancer+mongrelでRailsを動かす方法
  • 2.Perlでevalを使ってみる
  • 3.バージョン管理をsubversionからgitに移行してみた
  • 4.tokyobikeのドロップハンドル化
  • 5.ubuntu8.04でデュアルディスプレイを使う
  • 6.restful_authenticationを使ってみた
  • 7.URLなど、長い英字を折り返して表示する方法
  • 8.Rspecでコントローラのspecファイルを書く
  • 9.フラグメントキャッシュをRailsで使う。
  • 10.RailsとPostfixで受信メールを処理する方法

コメント

  • ユル(プログラマが若隠居をしたら)
  • ユル(風邪ひいた)
  • ユル(バイクがへたくそになっていた)
  • おおいしつかさ(便利になって不便になる)
  • 武石(便利になって不便になる)
  • ユル(劇場版 天元突破グレンラガン)
  • ユル(フラニーとゾーイー (新潮文庫): サリンジャー, 野崎 孝: 本)

過去の記事

2006年
12月
2007年
1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月
2008年
1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月

キーワード一覧

ActionScript AmazonResources git javascript kaeruspoon milook NSR Objective-C Rails Ruby Ruby on Rails subversion Thin tokyobike ubuntu VAIO VAIO typeZ Waves Xen ぐりぐり カンタロー スノボー ドトール ドライブ バイク プログラミング ユルさん 執筆 日本酒 模型 真中洋嗣 自転車

Youtube

ニコニコ動画