有一段时间我现在一直在我的页脚中显示最畅销产品列表,使用下面的代码。但是,我刚刚意识到启用缓存后,在刷新缓存之前,列表不会更新。有没有办法解决这个问题?
$_productCollection = Mage::getResourceModel('reports/product_collection')
->addAttributeToSelect('name')
->addAttributeToFilter('visibility', $visibility)
->addOrderedQty()
->setOrder('ordered_qty', 'desc')
$_productCollection->load();}
答案 0 :(得分:2)
如果您检查页脚块在
中使用缓存的方式app/code/core/Mage/Page/Block/Html/Footer.php
您会注意到它的缓存生存期设置为无限期,因此将应该显示动态信息的块作为页脚块的子块放置并不是最佳策略。不是禁用或降低页脚块缓存,更好的策略是考虑将畅销块移到页脚块之外,以便可以继续缓存页脚。
最好在页脚之前添加自定义块,并使用CSS将畅销书定位到您想要的位置。
此外,研究如何实现自己的块缓存的好地方是
app/code/core/Mage/Catalog/Block/Product/New.php
上面链接的wiki文章很好但有点不完整。 Magento提供了一种特殊的方法来定义缓存密钥getCacheKeyInfo()。
答案 1 :(得分:1)
您需要查看禁用页脚块的缓存 - 或者至少降低它的足够低。
这里有一个很好的例子:http://www.magentocommerce.com/wiki/5_-_modules_and_development/block_cache_and_html_ouput