1

好的,所以我最近一直在研究 magento 中的块缓存。看起来是加速页面渲染的一种非常好的方法,但它看起来也有点让人头疼。

例如,缓存类别块似乎需要大量的操作才能正确完成。此外,有很多核心块可能不使用块缓存。在这些情况下,开发人员是否必须创建一个模块,然后重写所有这些核心块,以便在它们上启用块缓存?

对于这个主题的新手,是否还有其他关于阻止缓存的提示?

4

2 回答 2

7

块缓存(在大多数情况下)不需要在 PHP 级别实现,它可以在 XML 中完成。要为已经存在的块启用缓存,您需要打开<reference />块,然后使用<action />调用设置适当的数据,如下所示:

<reference name="myblock">
    <action method="setCacheLifetime"><seconds>1800</seconds></action>
    <action method="setCacheKey"><key>my-unique-cache-key</key></action>
</reference>
于 2012-06-11T09:23:20.983 回答
0

如果您愿意,可以在 PHP 中完成块缓存。缓存管理必须写在Block的构造函数中

https://magento2.atlassian.net/wiki/display/m1wiki/How+to+use+HTML+output+cache+in+Magento+1.x

protected function _construct() {
 $this->addData(array(
  'cache_lifetime' => 3600,
  'cache_tags'     => array(Mage_Catalog_Model_Product::CACHE_TAG),
  'cache_key'      => $this->getProduct()->getId(),
 ));
}
于 2017-06-06T03:21:39.997 回答