MT4.0になってからも、MT3.xの時に作ったテンプレート&スタイルシートでやってたんですが、年末年始の休み中にMT4.0流のテンプレートにしてしまおう、ということで色々調べてみました。
MT4.0のテンプレートでは、アーカイブの種類ごとにテンプレートを書くのではなくて、ヘッダとかサイドバーとかのパーツごとにテンプレートを書いて、アーカイブを吐き出す時に書くパーツを呼び出してhtmlを生成する、なんてやり方になっているようで、そうするとサイドバーに最近のエントリーとか最近のコメント、トラックバックなど、度々データが入れ替わるようなものを付けるとエントリーを投稿するたびに全再構築、なんて羽目になるのでこれが大問題、どうするかと考えてたんですが、小粋空間にPHPでなくてもajaxでパーツを作ってサイドバーに表示させる、なんて方法が書かれていたので、取り入れてみました。なかなか良い感じです。
Movable Type のサイドバーの各リストを、Ajax でモジュール化を行う方法を紹介します。
1.PHP モジュール化と Ajax モジュール化の違い
Movable Type における PHP モジュール化には次のようなメリットがあります。
ただし PHP モジュール化は、ユーザがブラウザからインクルード元のページにアクセスした時、インクルード元のページはインクルード先の各モジュールを読み込んだコンテンツを生成・返却するため、サイドバーに多くの情報をインクルードしていると、PHP でページを生成する分、表示が遅延します。
- 再構築時間の削減
- アーカイブに依存しないリストの生成(今回はここに言及しません)
本題とはそれますが、WordPress で表示までに若干のタイムラグが生じるのは、この PHP によるページ生成が行われるためです(キャッシュや条件付きGETが機能していればこの限りではありません)。
Ajax モジュール化を利用すれば、サイドバーの情報は非同期で表示させられるので、ユーザはページをストレスなく閲覧することが可能になります。
再構築時間は PHPモジュール化と同じ効果があります。
コメントする