2017-03-01 7 views
0

メニューの最初の列(アマゾンのようなもの)のすべてのメニュー項目に対して3つの新しいメニューを生成する必要がある複雑なメニューがあります。メニューを生成する部分は単純ですが、メニューを生成するときに大量のデータを処理するため、処理が非常に遅く、メニューがすべてのページに表示されるため、ページの負荷に大きな影響を与えます。PHPでdivを1回だけ生成して印刷するにはどうすればよいですか?

私がしたいことは、そのdivを1回だけ生成して、ページをリフレッシュするたびに生成するのではなく、それを印刷することです。これにアプローチする最善の方法は何ですか?

+0

がapc_cacheやmemcacheの –

+0

を使用して操作をキャッシュしてみてください 'redis'も非常によく働くかもしれない良い候補 – arkascha

答えて

1

メニューの生成をキャッシュするキャッシュメカニズムを使用します。

あなたが機能generateMenuを(持っていると仮定すると)、あなたはAPCを使用してキャッシュしたい:

if (!apc_exists('menu')) { 
    $menuData = generateMenu(); 
    apc_store('menu', $data); // cache store only once 
} else { 
    $menuData = apc_fetch('menu'); //loads menu from cache 
} 
var_dump($menuData); 
+0

です私は似たような解決策を考えていましたが、apc_fetchについては分かりませんでした。 –

+0

apcこれは既にビルドされていますが、memcache、redis、またはすべての高速キー値を同じ方法で使用できます –

関連する問題