我有一個複雜的菜單,我必須爲菜單的第一列(類似於亞馬遜有的)中的每個菜單項生成三個新菜單,並且生成菜單的部分非常簡單,但因爲我在生成菜單時處理大量數據,它的執行速度非常慢,並且該菜單出現在每個頁面上,因此它對頁面加載有巨大的影響。在PHP中只生成和打印整個div的好方法是什麼?
我想要做的只是生成一次div,然後只打印它,而不是在每次刷新頁面時生成它。解決這個問題的最好方法是什麼?
我有一個複雜的菜單,我必須爲菜單的第一列(類似於亞馬遜有的)中的每個菜單項生成三個新菜單,並且生成菜單的部分非常簡單,但因爲我在生成菜單時處理大量數據,它的執行速度非常慢,並且該菜單出現在每個頁面上,因此它對頁面加載有巨大的影響。在PHP中只生成和打印整個div的好方法是什麼?
我想要做的只是生成一次div,然後只打印它,而不是在每次刷新頁面時生成它。解決這個問題的最好方法是什麼?
使用緩存機制來緩存菜單生成。
假設你有一個函數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);
可能工作得很好,我正在考慮類似的解決方案,但我不知道apc_fetch,謝謝。 –
apc它已經內置,但你可以使用memcache,redis或任何快速鍵值存儲相同的方式 –
嘗試使用高速緩存或apc_cache內存緩存 –
操作'redis'也是一個很好的候選人 – arkascha