특정 섹션 또는 블록에 대해 캐시를 비활성화하는 방법


31

캐시에 사용할 수없는 경우 장바구니에 추가 된 최신 3 개의 제품을 표시하는 상점 첫 화면에 대한 상단 바 장바구니 기능을 개발했지만 캐시를 사용하면 상단 장바구니에 이상한 소계를 표시하고 장바구니에 이상한 제품을 표시합니다.

이것은 나를 슬프게한다 : '(

캐시 때문에 이런 일이 발생한다는 것을 알고 있습니다. 이 섹션에 대해서만 캐시를 비활성화 할 수있는 것이 있습니까? 블록 html 캐시를 비활성화하려고 시도했지만 지금 확인하는 것이 좋지만 블록 HTML이 비활성화되면 범주 플랫에 지정되지 않은 문제가 있음을 알았습니다.


2
문제를 해결 했습니까? 방법? 세부 사항을 우리와 공유하십시오. 감사!
Fabian Blechschmidt

답변:


32

당신은 시도 할 수 있습니다

    <reference name="needed block">
        <action method="setCacheLifetime"><s>null</s></action>
    </reference>

또는

    <reference name="needed block">
        <action method="setCacheLifetime" />
    </reference>

null로 설정합니다.

그러나 아마도 아약스를 사용하는 것이 좋습니다.

에 대한 좋은 기사가 null0의미는http://blog.kyp.fr/make-a-clean-sweep-of-commons-magento-cache_lifetime-workarounds-usage-in-cache-block-policy/ (링크가 끊어졌습니다)


아약스를 사용하면 문제를 해결할 수 있습니다. 도와 주셔서 감사합니다.
ravisoni

2
나는 null= 결코 캐시하지 않고 0= 영구적으로 캐시 한다고 생각 했습니까?
benmarks

1
null= 절대 캐시하지 않습니다. 그러나, 나는 확실히 그것을에 인수 값에 가능하지 않다 null<action>지시어.
Dmytro Zavalkin

2
<action method="setCacheLifetime"><s>null</s></action>나를 위해 일했다. TNX!
ruuter

6
캐시 수명을 "0"으로 설정해도 캐시가 비활성화되지 않습니다. "null"만이 비활성화됩니다!
Anna Völkl

9

getChildHtml ()에서 캐시를 비활성화 할 수 있습니다. 서명은 다음과 같습니다.

public function getChildHtml($name = '', $useCache = true, $sorted = false)

트릭을 수행해야합니다.

echo $this->getChildHtml('block', false);

나는 이것을 시도했다 .. 실제로 top.phtml로 코딩되었습니다이 경우에는 작동하지 않습니다
ravisoni

캐시 될 수도 있으므로 큰 영향을 미치지 않을 것입니다. 그 부분 밖으로 끌어낼 수있는 기회가 있습니까? 다른 옵션은 없다고 생각합니다 ...
Rick Kuipers

9

특정 xml 파일에서. catalog.xml이라고 말하십시오.

특정 참조 블록의 경우 해당 블록에서 캐시 제한 조치를 널로 설정하십시오.

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>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.