July 29, 2004テンプレート共通化とJavaScriptによる軽量化様々なサイトをみていますと、テンプレートの共通化とPHPによるインクルードを使用してMovableTypeの軽量化を実現されている方が多いようですね。このサイトでも色々と工夫をしてMovableTypeの軽量化を図っていますが、PHPは利用していません。 当サイトでは、JavaScriptとテンプレートの共通化を行って軽量化を図っています。JavaScriptを選んだ理由は、クライアントサイドのCPUパワーを使用するので、PHPのようにサーバ側のCPUパワーをスポイルされることなく、真の軽量化ができるからです。また、PHPがインストールされていない環境でも実現可能であるなど、クライアントのブラウザにおいてJavaScriptが有効になっていない場合にページが正しく表示されなくなる可能性があるにしても、この方法には利点があるかと思います。 各ページのソースを見ていただければわかるように、このサイトでは非常に多くの部分がJavaScriptによって構築されています。例えば、ページの右側のサイドバーはほとんどすべてがJavaScriptで吐き出されています。上のバナーもJavaScriptで吐き出しています。 ということで、方法を公開します。 ※このエントリー、CROSS BREEDのAyuさんに紹介していただきました。PHP化にも興味がある方はこちらの記事をどうぞ。 方針としては、以下のようにしてあります。 共通の部分が別のテンプレートに書いてあれば、共通部分が何度も再構築されることがなく、構築の効率化が図れるということになります。またJavaScriptはクライアントサイドで読み込み・実行されるので、PHPのようにサーバ側のCPUパワーを必要としません。 では具体的方法の説明に入りたいと思います。例として、サイドバーに表示されている『最近のそれ(最近のコメント一覧)』の作り方を解説してみます。 まず、方針①の作業をします。 function getRecentComment(){
var html = "<div class='sidetitle'>最近のそれ</div>"; html += "<div class='side'>"; return html; あとは保存をクリックしてください。 次に、方針②の作業をします。 <script language="javascript" type="text/javascript" src="<$MTBlogURL$>/sidebar.js"></script>
<script language="javascript" type="text/javascript"> <!-- document.write(getRecentComment()); //--> </script> これで完了です。保存・再構築すればメインページに最近のコメント一覧が表示されるはずです。この操作を他の記事テンプレート(Individual ArchiveやDate-Based Archiveなど)で繰り返せば、そちらにもそれが反映されます。 最近のコメント一覧以外にも共通化できる部分はたくさんあると思いますので、アイデア次第でMovable Typeがどんどん軽くなると思います。また軽くなる他に、レイアウトを変更する場合に、①側のテンプレートの中身を書き換えればすべてに反映されますし、表示位置の調整は②で挿入位置を変えるだけで反映されるようになるなど、メンテナンス性も向上します。 ということで、MovableTypeが重いなと思われたら是非試してみてください。 コメント
sidebar.jsを使わせていただいております。 ところで、 fenrirです。 fenrirさん <MTEntries recently_commented_on="7">と</MTentries>で挟むのは間違いかどうか知らないのですがこの場合は7が最大で8にすると表示がなくなりました。 Posted by: Naka : February 15, 2005 01:50 AMfenrirさん Nakaさん、原因はおそらくJavaScriptの中に、予期されない文字(例えば文字列か終了していないにも関わらず"(ダブルクォーテーション)があったりなど)が考えられます。 fenrirさん はじめまして。 ももぱぱさん、こんにちは。fenrirです。 fenrirさん、親切なご返答ありがとうございます。 興味深く記事を読ませて頂きました。 fenrirです。 コメントする
|
スポンサード リンク
|