如何禁用特定部分或块的缓存
-
16-10-2019 - |
题
我已经为商店Front开发了一个顶级吧台卡车功能,该功能显示了最新的三个产品,该产品添加到购物车中时,当缓存被禁用时,它可以很好地工作,但是当我启用缓存时,它显示出奇怪的top Cart中的怪异,而在购物车中的怪异产品。
这让我难过:'(
我知道这是由于缓存而发生的。有什么我可以禁用本节的缓存吗?我已经尝试禁用块HTML缓存,现在检查它很棒,但是我发现当禁用块HTML时,该类别平面有未指定的问题。
解决方案
你可以试试
<reference name="needed block">
<action method="setCacheLifetime"><s>null</s></action>
</reference>
或者
<reference name="needed block">
<action method="setCacheLifetime" />
</reference>
将其设置为空。
但是最好使用Ajax。
有一篇很好的文章 null
或者 0
意义 http://blog.kyp.fr/make-a-clean-sweep of-commons-magento-cache_lifetime-workarounds-usage-usage-usage in-cache-block-policy/ (链接打破)
其他提示
您可以在getChildHtml()中禁用缓存。这就是签名的样子:
public function getChildHtml($name = '', $useCache = true, $sorted = false)
这应该解决:
echo $this->getChildHtml('block', false);
在特定的XML文件中。说catalog.xml
在该块中,该块中的特定参考块将缓存限制的动作设置为null
catalog.xml的示例
<reference name="right">
<block type="catalog/navigation" name="catalog.product.cat.related" as="related_cat" template="catalog/navigation/list_cat.phtml" after="-" >
<action method="unsetData"><key>cache_lifetime</key></action>
<action method="unsetData"><key>cache_tags</key></action>
</block>
</reference>