Movable Typeの再構築コストを下げる「RebuildIndexFilterプラグイン」バージョンアップ

Movable Typeの再構築コストを下げる「RebuildIndexFilterプラグイン」バージョンアップ

Posted at January 6,2012 1:55 AM
Tag:[MovableType, Plugin, RebuildIndexFilter]

Movable Typeのインデックステンプレートの再構築コストを削減する「RebuildIndexFilterプラグイン」をバージョンアップしました。

このプラグインは2008年に公開したものです。ということで、このプラグインをご存知ない方のために、改めて紹介も兼ねたいと思います。

1.インデックステンプレートの再構築について

プラグインの機能を説明する前に、Movable Typeのインデックステンプレートの再構築の振舞いについて解説します。

インデックステンプレートは、その公開設定が「スタティック」になっている場合、管理画面からの再構築を除き、次のいずれかのイベントが発生すると、すべて再構築されるようになっています。

  • ブログ記事の投稿・編集
  • ウェブページの作成・編集
  • コメント投稿
  • トラックバック受信

具体例を示します。「クラシックブログ」テーマでは次の6つのインデックステンプレートが登録されています。

  • アーカイブインデックス
  • スタイルシート
  • メインページ
  • JavaScript
  • RSD
  • 最新記事のフィード

この6つのテンプレートの「公開」設定が、次のように「スタティック」になっているとします。

「公開」設定
公開設定

そうすると、再構築時間に差はありますが、6つのインデックステンプレートがすべて再構築対象になります。ファイルの内容に変更がない場合、ファイル自体は出力されませんが、再構築データと出力ファイルの比較処理まで実施されると思います。

つまり、インデックステンプレート再構築の問題点は、「再構築の必要がないテンプレートまで再構築対象になってしまう」ことです。

もうひとつ例をあげると、コメント投稿では「メインページ」テンプレート以外のインデックステンプレートを再構築する必要はないのですが、MTのデフォルト機能ではそういった制御を行っていないので、再構築対象となってしまいます。公開設定を「手動」にすれば再構築対象外にできますが、そうすると必要なイベントで再構築できなくなります。

また、デフォルトで用意されているインデックステンプレート以外に、Googleサイトマップやサイドメニューなど、多くのページをインデックステンプレートで作っていると、さらに再構築対象のインデックステンプレートが増加し、イベントの応答時間に影響します。

ちなみに当サイトでは、図のように多くのインデックステンプレートを登録しており、ブログ記事投稿やコメント投稿でかなりの再構築コストがかかってました。以前、別のサーバを使っていたときは500エラーも発生することがありました。「最近のブログ記事」などのサイドメニュー類は、各ページで表示内容を統一させたいのでインデックステンプレートで生成し、Ajaxで表示させています。

当ブログのインデックステンプレート
インデックステンプレート

インデックステンプレートだけでなく、インデックステンプレートからインクルードしているテンプレートモジュールも当然再構築対象になります。

2.プラグインの機能

このプラグインを適用すれば、イベントごとに再構築対象のインデックステンプレートを指定できるようになります。

当ブログではこのプラグインを導入して、図のような設定を行いました。これによりイベントごとの再構築時間がかなり短縮されました。

インデックステンプレート

プラグインの具体的な機能ですが、インデックステンプレートの再構築トリガを、次の5種類のイベントから選択することができます。

  • ブログ記事の投稿
  • ウェブページの作成
  • コメント投稿
  • トラックバック受信
  • すべて

例えば、フィードなどは「ブログ記事の投稿」のみをトリガに再構築することで、コメント投稿などによる再構築から除外することができます。設定画面は3項をご覧ください。

3.変更点

今回のバージョンアップでMT5.1に対応できるようにしました。画面処理の変更のみです。インデックステンプレートのオプション設定部分に、次のように「再構築イベント」が表示されます。

インデックステンプレートのオプション設定部分
オプション設定部分

4.プラグインのダウンロード

RebuildIndexFilterプラグインは、以下のリンク先からダウンロードできます。

RebuildIndexFilterプラグイン
関連記事
zenback
人気エントリー
トラックバックURL


コメント

yujiro さん、

お年玉をいただいた気持です。
どうもありがとうございました!!

[1] Posted by s.fujino : January 6, 2012 2:24 AM

>s.fujinoさん
こんばんは。
バージョンアップが遅くなり申し訳ありませんでした。
それではよろしくお願い致します。

[2] Posted by yujiro logo : January 7, 2012 2:31 AM
コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)