I have developed a top bar cart functionality for store front that displays latest three products added to the cart this works great when cache is disabled but when i enable the cache it showing weird subtotal in top cart and weird products in cart.
This make me sad :'(
I know this is happening because of cache. Is there anything that I can disable the cache for this section only? I have tried disabling the block html cache and check now this was working great but I found the category flat is having unspecified issues when block HTML is disabled.
-
2Did you solve your problem? How? Please share the details with us. Thanks!Fabian Blechschmidt– Fabian Blechschmidt2013年05月09日 07:06:40 +00:00Commented May 9, 2013 at 7:06
3 Answers 3
You can try
<reference name="needed block">
<action method="setCacheLifetime"><s>null</s></action>
</reference>
or
<reference name="needed block">
<action method="setCacheLifetime" />
</reference>
to set it to null.
But probably it is better to use ajax.
There is a good article about null or 0 meaning (削除) http://blog.kyp.fr/make-a-clean-sweep-of-commons-magento-cache_lifetime-workarounds-usage-in-cache-block-policy/ (削除ここまで) (link is broken)
-
hmm use of ajax could solve the problem. I will try this thanks for your help.Ravi Soni– Ravi Soni2013年04月20日 05:49:00 +00:00Commented Apr 20, 2013 at 5:49
-
2I thought
null= never cache and0= cache permanently?benmarks– benmarks2013年04月20日 11:02:28 +00:00Commented Apr 20, 2013 at 11:02 -
1
null= never cache, right. However, I'm not sure it is possible to argument value tonullwith<action>directive.Dmytro Zavalkin– Dmytro Zavalkin2013年04月21日 11:02:52 +00:00Commented Apr 21, 2013 at 11:02 -
2
<action method="setCacheLifetime"><s>null</s></action>worked for me. TNX!ruuter– ruuter2013年04月26日 21:21:37 +00:00Commented Apr 26, 2013 at 21:21 -
6Setting the Cache Lifetime to "0" does not disable the cache. Only "null" will disable it!Anna Völkl– Anna Völkl2013年11月14日 14:10:35 +00:00Commented Nov 14, 2013 at 14:10
You can disable cache in getChildHtml(). This is what the signature looks like:
public function getChildHtml($name = '', $useCache = true, $sorted = false)
This should do the trick:
echo $this->getChildHtml('block', false);
-
i have tried this.. actually is have coded in top.phtml this is not working in that caseRavi Soni– Ravi Soni2013年04月19日 14:49:01 +00:00Commented Apr 19, 2013 at 14:49
-
That might be cached as well so I guess it wouldn't have much effect. Is there a chance you can pull it outside of that part? I don't think there are any other options...Rick Kuipers– Rick Kuipers2013年04月19日 14:53:29 +00:00Commented Apr 19, 2013 at 14:53
In the particular xml file. Say catalog.xml
In that for particular reference block In that block set the action of cache limit to null
Example of 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>