SSK Worldでは、ブログ管理用のサーバーアプリケーション・Movable Typeでサイト全体を運用しているわけですが、Movable Typeを使っているWeb管理者のストレスになりやすい作業に、「再構築」というものがあります。
投稿されたブログ記事や、月別、カテゴリー別などのアーカイブは、Webブラウザで表示できる形に整形する必要がありますが、Movable Typeでは、基本的にはあらかじめ整形されたファイルを作っておいて、アクセスがあったときにはこれをそのまま表示する…という手順で動作しています。このファイルを作っておく作業を「再構築」と呼んでいます。アクセスがあったときに、その都度データベースから整形されたファイルを生成して送り出す「動的再構築」という手法もあり、これに対してあらかじめファイルを作っておく手法は「静的再構築」とも呼ばれます。
静的再構築の場合、通常は、新しい記事が投稿されたときなどに、更新しなくてはならないファイルだけが再構築されるわけですが、サイトのデザインを変更したとき等には、すべてのページを再構築する必要が出てきます。記事のデータだけでなく、表示フォーマットも含めたファイル全体を出力しておくため、再構築作業時のサーバーへの負荷は大きくなり、最悪の場合には再構築作業がサーバーのタイムアウトで終了できない場合もあり得ます。また、記事数が多くなってくるとディスクスペースもより多く消費することになります。
一方、動的再構築の場合には、整形したファイルを置いておくサーバースペースは不要ですし、そもそも管理者側から見たときには明示的な再構築作業はありませんから、作成しているときのストレスは少なくなります。しかし、実際にアクセスがあったときに、ページを生成するためにサーバーには負荷が掛かり、表示されるまでに待たされるようになってきます。Web管理者に負担を掛ける静的再構築、閲覧するお客様に不満が出てしまうかも知れない動的再構築…と言えるかも知れません。
SSK Worldでは、これらの中間的な解として、藤本壱さんの著書「AjaxとPHPによる MovableType高速&最強システム構築法」で使われている手法を利用してみました。再構築するときに、個々の記事やアーカイブのページ全体を生成するのではなく、タグとして挿入されるデータを変数に代入するPHPスクリプトだけを生成しておきます。表示するときには、表示フォーマットを記述したインデックステンプレートに、PHPの変数をその都度差し込んでいく…という作りになっています。文章ではわかりにくいと思いますので、詳しくは本を読んでみてください。
Movable Typeのシステムにとっては、実に回りくどい処理になりますし、表示をカスタマイズしようとすると作業はとんでもなく煩雑になりますが、ひとたび仕組みが完成してしまえば、再構築の処理はこれまでよりもずいぶん短縮されます。もっとも、私の場合にはタグの内部に相当ややこしい処理がありますし、記事数も既に1,000を超えていますから、ブログ全体を再構築すると分単位の時間はかかるわけですが。また、PHPスクリプトを処理する分だけ、画面表示のレスポンスは低下するはずですが、実際に使ってみた感覚ではそれほど違和感はありません。作る側にとっても、読む側にとっても嬉しいですね。
コメントを残す