ブロックののcontrollerに
protected $btCacheBlockRecord = true;
protected $btCacheBlockOutput = true;
protected $btCacheBlockOutputOnPost = true;
protected $btCacheBlockOutputForRegisteredUsers = true;
を追記すれば早くなると思いますよ
concrete5.5.2.1本家版のソースを読むと、PageList 取得して、
「1 ページずつ順に、次のページかどうかを判定する」
みたいです。
なので、ページ数が多くなれば処理が遅くなるはずです。
実際にページをたくさん作っての検証はしていないですが。
また、判定をPHPで行っているようですが、
「データベースから取ってくる時にソートして一件取得」
のほうがたぶん速くなると思います。
ただしこちらも未検証です。DB の構造によっては、かえって遅いかもしれません。
すぐに対処できそうなのは、
キャッシュ機能を使う
でしょうか。
前後のページが変わることは少ないとすれば、キャッシュすれば問題無い気がします。
protected $btCacheBlockRecord = true;
protected $btCacheBlockOutput = true;
protected $btCacheBlockOutputOnPost = true;
protected $btCacheBlockOutputForRegisteredUsers = true;
cyanon
Re: next_previous blockを置くとページ読込みが遅くなる現象について
なるほど、そう言う理由なのですね。
自分はソースコード読めないので、判定のお話を教えて頂けて、とても助かりました。
たしかに、サイトを制作したての頃はもっと軽快だったので、ページが増えると重くなると言うのは、その通りかもしれません。
なんとか軽くなるなら今後使っていきたいブロックではありますが...。
それから、キャッシュの方は、一応既にフルページキャッシュとAPCを利用しておりまして…。(情報が小出しになってしまってすいません。)
ただ、やはりこれらのブロックがあるページの表示には、キャッシュはされててもその毎に処理が行われている感じで、体感して遅いです。
なのでおそらく処理結果のURLをキャッシュしてる訳ではない様に思います。
それにしても、本当に1ページずつ判定のお話は助かりました。
謎が解けたおかげで気持ちが楽になりました。
ありがとうございます。