Home arrow Link arrow Plugins

Joomla!の Cache

diggに追加!

昨日ある問い合わせがあってCacheのことでJoomlaのソースを眺めていました。

 Joomla!のCacheは、パーツごとにCacheファイルを作成し、それをパーツごとに読み込むようになっているようです。たとえば記事なら記事ごとにファイルが作成されます。モジュールならモジュールごとに。そうすることのメリットは、Cacheされては困るパーツは、Cacheさせないようにすることができるからだと思います。たとえば、このサイトで使用している!JoomlaCommentもその一つですが、Cacheされてしまうと投稿した内容はすぐに反映されません。明示的にCacheをクリアするしかありません。また、このサイトで配布しているPluginの中でもJavascriptをヘッダーに出力しているもの(SyntaxHilighter, CodePress Plugin, GreyBox)は、Cacheに対応していません。というより、Joomla!のCacheがヘッダーとともにCacheしないからです。その理由もわかります。パーツごとに管理しているため、Cacheしないパーツがヘッダー内の出力を変更することを考慮しているからだろうと想像します。Pluginは、記事内の設定された文字により、ONになります。Cacheから読み込まれた場合はPluginを通過した後の記事となるためPlugin自体を通過しません。よってヘッダーには出力することができません。

 サードパーティーのCacheエクステンション(ヘッダーを含めすべてをCacheしてくれる。)をひとつ試してみましたが、すべてのエクステンションに対応しているわけでは無いのでサイトで使用しているエクステンションによっては、自分で対応するように工夫しなければなりません。このサイトではCacheはオフにしていますが、Cacheの応答性を考えるとやはり対応していかなければならないと考えています。

 そこで対応の方法を考えてみました。

  • Joomla!のコアを変更してしまう。
    ソースを詳細に見ているわけではないので、もしかしたらそうできるように用意されているかもしれない。
  • サードパーティーのCacheエクステンションを使う。
    今回試したエクステンションは、うちのPluginはすべて正常動作していました。まるごとCacheされるので当然といえば当然ですが。

 と、そうしなくても簡易対応ならできます。

  • CacheがONならヘッダー内に出力せず、記事内にタグを出力。
    記事内にJavascriptや、CSSを出力するわけです。(あまり好きではないですが・・・さんざんGoogleのモジュールを作成しておいて何を言うって感じですか・・・)

対応していないPluginは、次のバージョン(マイナー)で簡易対応するつもりです。

 XML-RPCですが、Joomla!1.5ではどうもbloggerAPIのみの対応っぽいですね。他のAPI対応の動きは盛んなようですので最終的にはサードパーティーからになるかもしれませんが、公開されるような気はします。私も密かにつくりかけてたり・・・。


 

Related Articles

SQLインジェクション攻撃 5月:iLogScanner IPA
5月のSQLインジェクション攻撃をiLogScannerで解析してみました。・・・と、ところが途中でサーバーを移転してCORE SERVERになったのですが、CORE SERVERってどこにapach...
Operaで管理画面を開いたら : Joomla! Backend
そういえば、ブラウザのOperaがいつの間にか無くなっていた。最近頻繁にFirefoxが応答不能になるので新しいテンプレートの検証ようにも入れて置こうと思い、何気なくインストールしてみた。 Joom...
XML Editor
XML エディターについて  Joomla!のエクステンション制作に必ず必要な物がxmlファイルの作成です。普段は普通のテキストエディタを使っているのですが、時々エクステンションインストール時にエラ...
またですか!! : QRcode
ええ、またです。ごめんなさい。 QRcodeモジュール 1.0.3 for Japaneseのファイル群がまた間違えてました。すみません。 ファイル名をmod_qrcode_1.0.31_for_...
MovableType XML-RPCをアップデートしました
Updated to MovableType XML-RPC 1.0.4 for only Joomla!1.5 changed: fix : for Windows Live Writer How...
Combine
{TR_bothnative_right} Combineという選択肢 Combineは、複数のJavascriptをワンファイルへ複数のスタイルシートを管理し、OneAccessで出力します。また...
Joomla!1.5になって増えたINIファイル
Joomla!1.5では、パラメータの保存やランゲージファイルにINIファイルが使われています。 ここでふと気づいたのですが、ランゲージファイルは問題ないでしょうが、パラメータは見られては困るものも...
demo.joomler.netを1.5.1にしました
今までのアップグレード(RC4から1.5)と同様に私の場合、サーバーに圧縮されたファイルをそのままアップロードし、サーバーのバーチャルシェルで解凍。・・・すんなり。今回の場合は一度ローカルで解凍してい...
Joomla!1.5.2がリリースされています
今回のアップデートの中で、日時のコールの方法が変更されています。現在のところ以前のままで動作するのか確認していません。公開しているエクステンションで関連するのは以下のエクステンションです。 F...
1.0.3 for Joomla!1.5にアップデートしてください
Please update it as soon as possible if You use this plugin for Joomla!1.5.There is a problem in us...
Updated to 1.0.6 : Frontpage Auto Update for Joomla!1.0.x
Yahoo Babelfish Web 翻訳
Google Video Search モジュール Update!!
ソースを整えよう。PHPとJavascript
バックアップならこれJombackup
Joomlaos.de : JGTdoc と WebLink Info
Google Docsからの投稿について(2): MovableType XML-RPC
Joomla!1.0.xの管理で表示する記事一覧のソート : Hack
SnapCasa : サイトサムネイル & Joomla!1.5テンプレート
Joomla! 1.0.13 Demo

C_square_trans.png Components
Joomla! Extensions
M_square_trans.png Modules
Joomla! Extensions
P_square_trans.png Plugins
Joomla! Extensions
Templates
Joomla! Extensions
a_delphi.gif Delphi for PHP
Delphi for PHP related