我有幾個場景,我最終需要在幾個月時間內考慮這些場景。只是把問題放在那裏,以便我可以同時討論討論。使用Varnish/ESI和Zend Framework進行緩存和頁面瀏覽
我爲我的應用程序堆棧使用Zend Framework。我正在使用APC進行服務器緩存(而不是memcache,因爲我不認爲即使我的應用程序已分發,memcache也會爲我提供任何好處)。
我的應用程序已經構建成無JavaScript工作,然後用於JavaScript支持我將頁面分解並呈現適合JavaScript的版本。
如果你分析一個簡單的頁面,也許它的80%是核心功能,可以爲每個用戶緩存。然後,20%是爲該用戶定製的。例如,我可能想顯示
- 最後5瀏覽過的商品
- 收藏最多的項目
這兩個「小部件」將是針對每個用戶。我正在考慮對這些組件使用ESI,但後來我發現任何/我的Zend Framework應用程序最消費的方面是引導和分派過程。所以如果我的應用程序目前需要80毫秒而沒有緩存。像90%的相對時間花費在bootstrap和Plugin鉤子上,如果我使用ESI來加載這兩個「小部件」,那麼我會有效地爲每個頁面添加負載?因爲我會爲每個緩存頁面啓動另一個80ms請求。
在這種情況下,您是否建議通過JavaScript加載自定義的小部件/片段,在初始頁面加載後可以將其拖動。這樣做的明顯好處是,只有一個請求被緩存,然後在初始頁面(被緩存)提供之後,在單個請求中提取任何自定義的請求。
如果我正在尋找最佳性能,這似乎是更好的解決方案?