当我在GTmetrix.com上检查我的网站时,会得到以下时间表的屏幕截图。
如何减少接收时间,使网站加载速度更快。
这是由于未优化的PHP代码而发生的吗?
--
--
local.xml
。--
Varnish是一个全页缓存,但是Magento由块组成-块独立失效-与不相关的块相比,重建整页的频率更高。
Varnish(默认情况下)处理静态内容(JS,CSS,图像等)。我不确定它是否也(默认情况下)检查html文件是否正在使用eTag(我认为是),因此您可以先将html页面配置为使用eTag标头并开始进行缓存(但要小心到期时间-如果是动态页面,访问者将看到旧信息,您必须决定在哪个页面上可以接受。
如果服务器上具有Memcached,则可以配置local.xml文件以开始将Memcached用于会话以及块缓存。但是,由于您的Magento进行了大量修改,因此您的Block类需要是可缓存的-它们需要重写getCacheKey
方法并返回一个字符串,因此该字符串根据所呈现块的HTML内容需要有所不同。
例子:
如果您有一个显示恒定HTML片段的块,则关键字可以是您可以“计算”的任何唯一字符串,而无需实际重建/重新呈现该块(例如,您在layout.xml中为该块指定的名称)。
如果您有一个显示“ Hi {{username}}!”的代码块 那么密钥应基于用户名或user_id,例如$key = "user_welcome_".$user->getId();
可以轻松地从会话中获取当前用户,因此您不必运行数据库查询即可获取该密钥。
如果您有一个依赖于多个参数的块,则在构建缓存键时需要考虑所有这些参数,并且需要考虑到以下事实:需要通过尽可能少的处理就可以访问参数信息-如果您只是为了计算缓存键而从数据库中获取信息,则可能是我做错了-例如,根据当前CMS的page_id,一个块的内容可能有所不同,但是您无需从DB知道,您只需处理URL或$_GET
变量,然后使用该信息来构建缓存键。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句