キャッシュによる高速化paraedit

  • ページ: Develop/Modification1
  • 投稿者: ぃぉぃぉ
  • 優先順位: 普通
  • 状態: 提案
  • カテゴリー: その他
  • 投稿日: 2011-10-20 (木) 20:26:30
  • バージョン:

メッセージparaedit

ページデータのキャッシュ化paraedit

ページ部分のhtmlデータは書き込み時に生成しちゃって高速化しよう。ただし、各プラグインに動的表示があるかどうかのフラグを持たせ、必要な場合は毎回htmlを生成するようにする。

動作の流れparaedit

書込み時paraedit

キャッシュ削除

表示時paraedit

キャッシュ可能か、はページ毎に判断すること。でないとinclude等ではまる。

&_now;, &lastmod;などの表示時置換文字が有る場合にもキャッシュ不可能だな。判別処理追加しなきゃ。 あとnoteが有る場合もだめだな。

その他paraedit

プラグイン毎の対応paraedit

  • $vars['cache_enable']['plugin名']
    • pluginを呼ぶ前にfalseにする。
      • lib/plugin.phpのdo_plugin_convert()とdo_plugin_inline()
    • plugin中でcache化してokであれば、trueにする。
      • だめなpluginの例 ... ls2、pagetree、counter、include、related
    • 複数回呼ばれると、後勝ちになってしまう。プラグインの中で動作が変わりうるものについては、NGの場合、['plugin名']を['plugin名_nocache'](=FALSE)とする。

キャッシュファイルparaedit

HTCACHE_DIRに'../'.DATA_DIR.'htc/'でどうかな。

CACHE_DIRとしてcache/を使いたいところだけど、現状違う使われ方をしているし、とりあえず分けておこう。

/data/htc/ページ名エンコード.html

これで、通常のデータと同じ文字数になるので、ファイル名長さ問題が軽減される。(従来より悪くならない)

/data/wiki/ページ名エンコード.txt

ページ削除時に削除対象ファイルとすることも忘れずに。

関数paraedit

  • is_cached()
  • page_cache()
  • get_cache()
    • ページ名のキャッシュを取得。キャッシュがあれば取得。無ければconvert_html()
  • make_cache()
    • $vars['cache_enable']をチェックして、全てtrueであればキャッシュファイル生成。convert_html後のテキストファイルを置く。一つでもNGならファイル削除。

  • relatedとかincludeを多用したページとかで動作が軽くなるはず。 -- ぃぉぃぉ 2011-10-20 (木) 20:27:40
  • 大体実装は終わってるんだよな〜。いつ適用しようか。 -- ぃぉぃぉ 2011-11-02 (水) 17:30:30


トップ 編集凍結差分バックアップ添付複製名前変更リロード 新規一覧 単語検索 最終更新  ヘルプ  最終更新のRSS
Last-modified: 2012-02-22 (水) 18:35:14 (2826d)