MTRequestCacheプラグイン(超シンプルなテンプレートキャッシュ)。
公開日 : 2009-01-08 21:09:10
昨日の続き。ちょっと思いつきで書いた。後悔はしていない(誰か同じもん書いてるかもしれないんだけど...という意味で)。
MTRequestCacheBlockタグで囲まれた部分は、単一の(cgiへの)リクエスト中であればキャッシュを使うようになります。参考 : Movable Type オブジェクト・リファレンス - MT::Request
まぁ、移動の電車中にてちょっと書いたってくらいのものです。ご利用は自己責任でお願いします(多分問題ないと思うけど)。
テンプレートは以下のような感じです。idとblog_id属性を指定できるので、複数箇所指定する際は重複のないようにご注意ください。
<MTSetVarBlock name="blog_id"><MTBlogID></MTSetVarBlock>
<MTRequestCacheBlock id="RecentEntries" blog_id="$blog_id">
Some template tags here.
</MTRequestCacheBlock>
MT4.2でテンプレートキャッシュ機能とか高速化にはかなり拘っているMovable Typeですが、チューニングの選択肢が増えた分そのあたりをうまく使いこなすためにはやはりそれなりに理解する必要が出てきます。正直、チューニングちゃんとやろうと思ったらかなり詳しくならないと難しいような気がします。
それでも、標準状態で結構色んなところで高速化図られてます。例えばカレンダーなんか勝手にキャッシュされるんですよね(実はハマった経験あり)。
MT3系の頃は以下のエントリーでも書きましたが、共通部分をインデックス・テンプレートにしてインクルードファイルにするという方法を良くとっていました。
この方法はすごく効果がある反面、一点だけ問題があります。それは「再構築の順番」です。
基本的にMTではエントリー(ブログ記事)アーカイブ等を先に再構築してインデックステンプレートは最後に再構築されます。理由は明らかで、最後にインデックステンプレートを再構築しないと一時的とはいえリンク切れを起こすからです。
よって、例えばこのエントリーを最初に公開した瞬間には、ページ右側の「最近のエントリー」にこのエントリー自身が含まれないことになります。よって、反映させるためにはもう一度再構築を行う必要があります(全再構築すれば済む話ですが)。
とか、そのあたり考えずに使えるといいかなと思って書いた、ということです。