ฉันจะปิดการใช้งานแคชสำหรับส่วนหรือบล็อกเฉพาะได้อย่างไร


31

ฉันได้พัฒนาฟังก์ชั่นรถเข็นบาร์ด้านบนสำหรับหน้าร้านที่แสดงผลิตภัณฑ์สามรายการล่าสุดที่เพิ่มลงในรถเข็นซึ่งใช้งานได้ดีเมื่อปิดการใช้งานแคช แต่เมื่อฉันเปิดใช้งานแคชมันจะแสดงผลรวมย่อยแปลก ๆ

นี่ทำให้ฉันเศร้า: '(

ฉันรู้ว่าสิ่งนี้เกิดขึ้นเพราะแคช มีอะไรที่ฉันสามารถปิดการใช้งานแคชสำหรับส่วนนี้เท่านั้น? ฉันได้ลองปิดการใช้งานแคชบล็อก html และตรวจสอบว่าตอนนี้ใช้งานได้ดี แต่ฉันพบว่าหมวดหมู่แฟลตกำลังมีปัญหาที่ไม่ระบุเมื่อบล็อก HTML ถูกปิดใช้งาน


2
คุณแก้ปัญหาของคุณหรือไม่ อย่างไร? กรุณาแบ่งปันรายละเอียดกับเรา ขอบคุณ!
เฟเบียน Blechschmidt

คำตอบ:


32

คุณสามารถลอง

    <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-in-cache-block-policy/ (ลิงก์เสีย)


การใช้ ajax ของ hmm สามารถแก้ไขปัญหาได้ ฉันจะลองนี้ขอบคุณสำหรับความช่วยเหลือของคุณ
ravisoni

2
ฉันคิดว่าnull= ไม่เคยแคชและ0= แคชอย่างถาวรหรือไม่
benmarks

1
null= ไม่แคชเลย อย่างไรก็ตามฉันไม่แน่ใจว่ามันเป็นไปได้ที่จะโต้แย้งค่าnullกับ<action>คำสั่ง
Dmytro Zavalkin

2
<action method="setCacheLifetime"><s>null</s></action>ทำงานให้ฉัน TNX!
ruuter

6
การตั้งค่า Cache Lifetime เป็น "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.