- 追加された行はこの色です。
- 削除された行はこの色です。
**概要 [#jda8d90a]
ls2プラグインは、呼び出されるたびにget_existpages()を呼び出すので、
全体で数万ページあるようなサイトでは、1ページ内で何度も#ls2を書くと
リニアに遅くなります。
get_existpages()の結果をキャッシュして、複数回呼ばれたときの処理を高速化します。
**内容 [#m161712e]
$ diff -u ls2.inc.php.original ls2.inc.php
--- ls2.inc.php.original 2004-12-05 20:37:37.000000000 +0900
+++ ls2.inc.php 2011-04-01 00:55:33.856430534 +0900
@@ -29,6 +29,9 @@
// 見出しレベルを調整する(デフォルト値)
define('PLUGIN_LS2_LIST_COMPACT', FALSE);
+// Cache of get_existpages() result
+$g_cached_plugin_ls2_existpages = null;
+
function plugin_ls2_action()
{
global $vars, $_ls2_msg_title;
@@ -86,14 +89,18 @@
function plugin_ls2_show_lists($prefix, & $params)
{
global $_ls2_err_nopages;
+ global $g_cached_plugin_ls2_existpages;
$pages = array();
+ if ($g_cached_plugin_ls2_existpages === null) {
+ $g_cached_plugin_ls2_existpages = get_existpages();
+ }
if ($prefix != '') {
- foreach (get_existpages() as $_page)
+ foreach ($g_cached_plugin_ls2_existpages as $_page)
if (strpos($_page, $prefix) === 0)
$pages[] = $_page;
} else {
- $pages = get_existpages();
+ $pages = $g_cached_plugin_ls2_existpages;
}
natcasesort($pages);
**コメント [#oc970c7a]
#comment