यह समझना महत्वपूर्ण है कि आप कैश ब्लॉक क्यों नहीं करना चाहते हैं। यदि यह कुछ सत्र विशिष्ट जानकारी दिखाने के लिए है तो आपको इस पर ध्यान देना चाहिए
एक गैर-अनुशंसित विकल्प कस्टम नियंत्रक भी हो सकता है जो अजाक्स-कॉल पर कुछ डेटा लौटाता है (POST- विधि के साथ तो इसे समाप्त नहीं किया जाएगा)।
(!) cacheable = "गलत" का उपयोग नहीं किया जाना चाहिए। यहाँ का पालन करेंगे, क्यों नहीं:
कैशेबल के साथ एक ब्लॉक = "झूठा" पूरे पृष्ठ को बिना पढ़े बना देगा। इसका उपयोग कैश-छेद-छिद्रण के लिए नहीं किया जाता है। इसके बाद का पेज भी यह कहता है ( एक अनचाहे पेज को बनाने के लिए , उस पेज पर किसी भी ब्लॉक को कैशेबल = "गलत" का उपयोग करके लेआउट में उपलब्ध होने के रूप में चिह्नित करें ):
यह क्या करता है कि वार्निश / फास्टली मॉड्यूल इस विशेषता मान के कारण हमेशा गैर-उपलब्ध हेडर भेजते रहेंगे।
जब हम कैशलेस = "झूठा" सक्षम करते हैं और वार्निश / फास्ट का उपयोग करते समय तब हेडर के बाद ब्राउज़र साइड भेजा जाता है:
X-Magento-Cache-Debug:MISS
X-Magento-Cache-Control:max-age=0, must-revalidate, no-cache, no-store
Age: 0
इसके लिए Magento के पेज कैशिंग कोड को डीबग किया जा सकता है
vendor/magento/module-page-cache/Model/Layout/LayoutPlugin.php::afterGenerateXml
vendor/magento/module-page-cache/Model/Layout/LayoutPlugin.php::afterGetOutput
जहां पहले टीटीएल के साथ सार्वजनिक कैश-कंट्रोल भेजना चाहिए और दूसरे को वार्निश / फास्ट के लिए एक्स-मैगेंटो-टैग भेजना चाहिए।
दोनों iscacheable () चेक का उपयोग कर रहे हैं, जहां यह हमेशा चेक के बाद FALSE लौटाता है (यदि वर्तमान लेआउट में कोई विशेषता है तो चेक करें: cacheable = "false"):
$cacheableXml = !(bool)count($this->getXml()->xpath('//' . Element::TYPE_BLOCK . '[@cacheable="false"]'));
जब हम cacheable = "false" को हटाते हैं, तब हम iscacheable () को TRUE के रूप में जाँचना शुरू करते हैं और प्रारंभ- / श्रेणी- / उत्पादपृष्ठों पर सही ढंग से हेडर प्राप्त करते हैं।
X-Magento-Cache-Control:max-age=86400, public, s-maxage=86400
X-Magento-Cache-Debug:HIT
X-Magento-Cache-Hits:1
Age:32