我有几个场景,我最终需要在几个月时间内考虑这些场景。只是把问题放在那里,以便我可以同时讨论讨论。使用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加载自定义的小部件/片段,在初始页面加载后可以将其拖动。这样做的明显好处是,只有一个请求被缓存,然后在初始页面(被缓存)提供之后,在单个请求中提取任何自定义的请求。
如果我正在寻找最佳性能,这似乎是更好的解决方案?