2008年03月12日
javascriptでMovableTypeを軽量化する
このブログはMovable Type ver 3.33で書いてるんだけど、コンテンツが350を超えるあたりから再構築が超遅くなってきた。どのページにも表示される「カテゴリリスト」などは、当該ページを構築する際にそれぞれHTMLファイルに書き込まれている。そのために、カテゴリやエントリの数が増えてくると文字通り「幾何級数的に」サーバー側の負荷が増えてくる。特に困ったのが再構築中にエラーで止まってしまうことで、これを避けるために一度に再構築するエントリ数を減らして対処してきた。当初は40だったのが9まで減らさないと、再構築が止まってしまうのだ。
2007年の12月に追加して以来、軽量化の方法を探ってきたんだけど、つい最近すごいサイトを見つけた。各ページの作者さんに感謝!!
- Fenrir's BLog テンプレート共通化とJavaScriptによる軽量化
- FreeBSD Movabletypeの軽量化
- 法務だけど理系女子の綴るblog JavaScriptでMovable Typeを軽量化にトライ
- Movable Type のサイドバーを JavaScript で書き出す BowzNotebook
すごい発想の転換。上記のページにもあるが、従来サーバー側で負担していた負荷をクライアント側に分散しようという発想だ。しかも、その負担具合は極小さな表示なので、ストレスはほとんど感じない。
そして、上記サイトを参照しながらいろいろやってみた。これは、よくあるテンプレートを適用するだけというようなものではなく、かなり「脳に汗をかく」必要はあるのだが..やり始めてみるととにかくおもしろくなる。そして、再構築のスピードがみるみる速くなっていくのが快感だった。
さて、このブログでやってるのは 左サイド上の「このエントリが属しているカテゴリのサブカテゴリ&エントリー一覧」右サイドの「カテゴリーツリー」および「月毎の記録」の3カ所。Javascript化の一番の利点は、あるエントリを追加すると、そのエントリが含まれているカテゴリの他のエントリにある一覧も再構築することなく更新されることだ。同じ事がカテゴリツリーや月毎の記録にも言える。ちょうどのぞき窓が開いている状態ということだ。
結局、再構築時のエントリ数は40に戻した。しかも物凄く速い。以前ならば、すべてを再構築ボタンを押してからお風呂に入って、あがってきてもまだ構築中なくらい、長い時間がかかったのだが、今は数分で終わるようになった。
このエントリーのトラックバックURL:
http://saiquet.sakura.ne.jp/8869/mt-tkereb.cgi/427