Type]様々なサイトをみていますと、テンプレートの共通化とPHPによるインクルードを使用してMovableTypeの軽量化を実現されている方が多いようですね。このサイトでも色々と工夫をしてMovableTypeの軽量化を図っていますが、PHPは利用していません。当サイトでは、JavaScriptとテンプレートの共通化を行って軽量化を図っています。JavaScriptを選んだ理由は、クライアントサイドのCPUパワーを使用するので、PHPのようにサーバ側のCPUパワーをスポイルされることなく、真の軽量化ができるからです。PHPがインストールされていない環境でも実現可能であるなど、クライアントのブラウザにおいてJavaScriptが有効になっていない場合にページが正しく表示されなくなる可能性があるにしても、この方法には利点があるかと思います。各ページのソースを見ていただければわかるように、このサイトでは非常に多くの部分がJavaScriptによって構築されています。ページの右側のサイドバーはほとんどすべてがJavaScriptで吐き出されています。上のバナーもJavaScriptで吐き出しています。いうことで、方法を公開します。BREEDのAyuさんに紹介していただきました。PHP化にも興味がある方はこちらの記事をどうぞ。方針としては、以下のようにしてあります。1共通の部分は新たにテンプレートを作り、JavaScriptの外部ファイル(いわゆる拡張子がjsのファイル)として吐き出すようにする。このファイルの中にはJavaScriptの関数が記載されている。Archiveなど)では、1で作成された外部JavaScriptファイルを読み込み、その中に書いてあるJavaScript関数を実行するだけにする。共通の部分が別のテンプレートに書いてあれば、共通部分が何度も再構築されることがなく、構築の効率化が図れるということになります。JavaScriptはクライアントサイドで読み込み・実行されるので、PHPのようにサーバ側のCPUパワーを必要としません。具体的方法の説明に入りたいと思います。例として、サイドバーに表示されている『最近のそれ(最近のコメント一覧)』の作り方を解説してみます。方針1の作業をします。MovableTypeの編集画面で、『Templateの編集』において『新しいインデックス・テンプレートをつくる』を選んでください。すると新しいインデックスプレートの作成画面になりますので、テンプレートの名前、出力ファイル名を適当に指定してください。Bar』と『sidebar.js』としましょう。『インデックス・テンプレートを再構築するときにこのテンプレートを自動的に再構築する』は、構築によって変化する要素があるときはチェックをいれてください。今回の最近のコメント一覧のような場合は、チェックをいれてください。次にテンプレートの中身ですが、以下のように入力してください。html;}あとは保存をクリックしてください。次に、方針2の作業をします。メインページに最近のコメント一覧を追加してみましょう。Index』テンプレートのお好みの部分に次のコードを追加してください。1で作成したテンプレートの構築結果はsidebar.jsというファイルに書き出されていることに注意してたくざい。type="text/javascript"><!--document.write(getRecentComment());//--></script>これで完了です。保存・再構築すればメインページに最近のコメント一覧が表示されるはずです。Archiveなど)で繰り返せば、そちらにもそれが反映されます。Typeがどんどん軽くなると思います。軽くなる他に、レイアウトを変更する場合に、1側のテンプレートの中身を書き換えればすべてに反映されますし、表示位置の調整は2で挿入位置を変えるだけで反映されるようになるなど、メンテナンス性も向上します。いうことで、MovableTypeが重いなと思われたら是非試してみてください。https://fenrir.naruoka.org/mt/mt-tb.cgi/304コメントsidebar.jsを使わせていただいております。sort_order="descend">でlastnが"21"まではOKですが"22"とすると動作しません。この数字は何処で制限されるのでしょうか?また、広げることは可能っでしょうか。PMfenrirです。よろしければどのようなエラーが発生したか教えていただけないでしょうか。AMfenrirさん早速のレスポンスありがとうございます。エラーというより、lastnが21までは正しく表示されるのですが、lastnを22とした途端に何も表示されなくなってしまったのです。22以上でも同じです。recently_commented_on="7">と</MTentries>で挟むのは間違いかどうか知らないのですがこの場合は7が最大で8にすると表示がなくなりました。";がきれいに並んでいます。すると、変数に文字列を追加する回数が、ある一定を超えるとダメなのか、一つの変数に入れられる文字列長に制限があるのかと思いたくなります。IEでsidebar.jsを見ようとすると行3、文字1、エラー文字列が正しくありません。コンパイルエラーとなります。PMNakaさん、原因はおそらくJavaScriptの中に、予期されない文字(例えば文字列か終了していないにも関わらず"(ダブルクォーテーション)があったりなど)が考えられます。encode_js="1"を付け加えてみてはいかがでしょうか。PMfenrirさんずばりです。エントリーのタイトルにダブルクォーテーションが含まれているのが一つ見つかりました。別の記号に置き換えてsidebar.jsを再構築したらバッチリです。ありがとうございました。この内容を参考にさせていただきました。HTMLを初めて3ヶ月の初心者で、これで初めてJavascriptを使いましたよ。PMももぱぱさん、こんにちは。JavaScriptはクライアントで実行されるので、クライアントの処理能力にもよると思いますが、ここにあげている方法はリアルタイムに動作するもの(例えば、画面を下にさげると追ってくるホバーメニューのようなもの)ではないので、それほど重くならないと思います。古いマシンがあるようでしたら、ここのページを表示させてみて重いかどうか判断していただけると幸いです。PMfenrirさん、親切なご返答ありがとうございます。600MHz)で試してみたところ、ここのサイトは、初めに開くときに画面が切り替わるまでに少し時間がかかりましたが、その後はまったく重さを感じませんでした。ありがとうございました。PM興味深く記事を読ませて頂きました。他の点で一つ気になることがあります。機種依存文字である数字の囲み文字ですが、このページに書かれたものは、MacでもWinでも正しく表示されるということです。PMfenrirです。1のような丸数字のことでしょうか?このページの文字コードをUTF-8で記述しているからだと思われます。No匿名でのコメントは受け付けておりません。名前(ハンドル名可)とメールアドレスは必ず入力してください。メールアドレスを表示されたくないときはURLも必ず記入してください。コメント欄でHTMLタグは使用できません。コメント本文に日本語(全角文字)がある程度多く含まれている必要があります。コメント欄内のURLと思われる文字列は自動的にリンクに変換されます。BlogPeople。