Re: next_previous blockを置くとページ読込みが遅くなる現象について

2012年8月18日 at 7:43

concrete5.5.2.1本家版のソースを読むと、PageList 取得して、
「1 ページずつ順に、次のページかどうかを判定する」
みたいです。

なので、ページ数が多くなれば処理が遅くなるはずです。
実際にページをたくさん作っての検証はしていないですが。

また、判定をPHPで行っているようですが、
「データベースから取ってくる時にソートして一件取得」
のほうがたぶん速くなると思います。
ただしこちらも未検証です。DB の構造によっては、かえって遅いかもしれません。

すぐに対処できそうなのは、
キャッシュ機能を使う
でしょうか。
前後のページが変わることは少ないとすれば、キャッシュすれば問題無い気がします。

Re: next_previous blockを置くとページ読込みが遅くなる現象について

2012年8月18日 at 12:22
とても早い返信をいただき、ありがとうございます。
なるほど、そう言う理由なのですね。
自分はソースコード読めないので、判定のお話を教えて頂けて、とても助かりました。
たしかに、サイトを制作したての頃はもっと軽快だったので、ページが増えると重くなると言うのは、その通りかもしれません。
なんとか軽くなるなら今後使っていきたいブロックではありますが...。

それから、キャッシュの方は、一応既にフルページキャッシュとAPCを利用しておりまして…。(情報が小出しになってしまってすいません。)
ただ、やはりこれらのブロックがあるページの表示には、キャッシュはされててもその毎に処理が行われている感じで、体感して遅いです。
なのでおそらく処理結果のURLをキャッシュしてる訳ではない様に思います。

それにしても、本当に1ページずつ判定のお話は助かりました。
謎が解けたおかげで気持ちが楽になりました。
ありがとうございます。
 

Re: next_previous blockを置くとページ読込みが遅くなる現象について

2012年8月19日 at 16:49
ブロックのコードを確認しましたが、どうもこのブロックはキャッシュされない様になっている様です。
ブロックののcontrollerに

protected $btCacheBlockRecord = true;
protected $btCacheBlockOutput = true;
protected $btCacheBlockOutputOnPost = true;
protected $btCacheBlockOutputForRegisteredUsers = true;

を追記すれば早くなると思いますよ
 

Re: next_previous blockを置くとページ読込みが遅くなる現象について

2012年8月19日 at 18:35
ありがとうございます。
next_previousを外すのは、泣いて馬謖を斬る心境だったもので、とても助かります。
早速付け加えてみたいと思います。
本当に感謝です。