ecache.inc.php

Top > Plugin > ecache.inc.php

お手軽部分キャッシュ

First Edition. 07/23/2006
Last Modified. 03/28/2008
Table of Contents

概要

Wiki 文法の出力 HTML をキャッシュし、負荷軽減を試みます。類似ものに比べて手軽さがウリです。

MenuBar に、処理がそこそこかかるプラグイン(popular など)を設置する際、 reset=[秒数]オプションを利用して、一時間ごとにだけ更新させる、のようにするとかなりの負荷軽減になると思います。

書式

#ecache([Options]){{
Contents
}}

Options

  • reset=on|off|new|秒数
    • reset=on で強制的にリセット。reset=off で常に更新しない。reset=new はページがキャッシュよりも新しければ更新する。デフォルト動作。reset=秒数で指定秒数毎にキャッシュを強制リセット(new の効果もある)。
  • page=ページ名
    • キャッシュを区別するページ名。デフォルトではカレントページ。MenuBar に設置する場合に page=MenuBar とするためのようなもの。

Download

右クリックから保存し、plugin ディレクトリにおいてください。常に開発版です。

ecache.inc.php

What's new viewcvs

RevisionDateWhat's new
v 1.503/28/2008$head_tags, $foot_tags, $foot_explain (注釈), $newtitle (TITLE: Plus!) 対応。キャッシュファイルフォーマットが変更になったので一度全キャッシュファイル cache/*.ecache を削除してください。お手数おかけします
v 1.408/03/2007「タイムスタンプを変更しない」編集でもキャッシュを更新できるように。また、プレビューでもキャッシュを更新
rev.31001/16/2006reset=秒数
rev.17812/29/2006オプション page, オプション reset
ecache.inc.php.107/23/2006First Edition

Compatibility Check

Please join us to check compatibilities.

Compatible

Selection Vote
PHP4 2
PHP5 0
1.3.7 0
1.4.3 0
1.4.4 0
1.4.5_1 0
1.4.6 1
1.4.7 2
1.4.5plus-eucjp 0
1.4.6plus-u1-eucjp 0
1.4.6plus-u2-eucjp 0
1.4.5plus-u2-i18n 0
1.4.6plus-u1-i18n 0
1.4.6plus-u2-i18n 0
1.4.7plus-i18n 1
1.4.7plus-u2-i18n 1

Incompatible

Selection Vote
PHP4 0
PHP5 2
1.3.7 0
1.4.3 0
1.4.4 0
1.4.5_1 0
1.4.6 1
1.4.7 0
1.4.5plus-eucjp 0
1.4.6plus-u1-eucjp 0
1.4.6plus-u2-eucjp 0
1.4.5plus-u2-i18n 0
1.4.6plus-u1-i18n 0
1.4.6plus-u2-i18n 0
1.4.7plus-i18n 0
1.4.7plus-u2-i18n 0

設定

プラグインで複数行引数を使えるようにしておきます。PukiWiki を 1.4.6 以上にアップデートしてください。

pukiwiki.ini.php

-define('PKWKEXP_DISABLE_MULTILINE_PLUGIN_HACK', 1); // 1 = Disabled
+define('PKWKEXP_DISABLE_MULTILINE_PLUGIN_HACK', 0); // 1 = Disabled

技術的詳細

About cache

キャッシュファイルは cache/encode(ページ名)_番号.ecache のような名前で作成されます。 番号とはそのページにおける設置番号です。1つのページに3つ設置した場合、上から順に、1, 2, 3 と番号が付きます。

ページのタイムスタンプとキャッシュファイルのタイムスタンプを比べ、ページの方が新しければ更新します。 よって、ls プラグインのように他のページからの影響を受けるプラグインをキャッシュした場合、最新に保たれない可能性があります。その場合、設置ページをを無編集更新してください(rev.310 から reset=秒数 オプションが追加されたので、reset=3600 (1時間)のようにすると負荷軽減しつつ、自動更新に対応できると思います)

Related