विशिष्ट ब्लॉकों के लिए कैश अक्षम करें


9

मैं पृष्ठों को अज्ञात उपयोगकर्ताओं के लिए Drupal 8 कैशिंग तंत्र से लाभान्वित करना जारी रखना चाहूंगा, केवल उन विशिष्ट ब्लॉकों को छोड़कर, जिन्हें व्यू से उत्पन्न होने वाले प्रत्येक पृष्ठ को ताज़ा करना चाहिए।

क्या यह तकनीकी रूप से संभव है? कैसे?


जैसा कि एमपीडी ने उल्लेख किया है, अधिकतम आयु सेटिंग का उपयोग करें। इसके अलावा आप इसे यूआई के माध्यम से ब्लॉक एडिट फॉर्म पर भी कर सकते हैं।

मेरे पास यह मुद्दा भी है - यह कष्टप्रद है ड्रुपल स्वचालित रूप से इस के साथ सौदा नहीं करता है। कैशिंग अच्छा है, लेकिन Drupal को डायनामिक वेबसाइटों के लिए माना जाता है ...
James

जवाबों:


1

उस दृश्य को क्या दर्शाता है?

D8 में कैश टैग और संदर्भ होते हैं जो यदि कुछ बदलता है तो स्वचालित रूप से ब्लॉक को अमान्य कर देगा।

इसलिए यदि आपके पास नोड्स की एक सूची है, तो हर बार एक नोड जोड़े जाने या अपडेट किए जाने पर, उस ब्लॉक को अपडेट किया जाएगा, लेकिन तब तक, कैश्ड संस्करण का उपयोग किया जाता है। जो हर पेज पर पुनर्निर्माण से बहुत बेहतर है।

यह पेज कैश के साथ भी काम करता है, उन पेजों को भी स्वचालित रूप से अपडेट किया जाएगा।

कई, कई चीजें बस किसी भी मैनुअल कॉन्फ़िगरेशन की आवश्यकता के बिना, बॉक्स से बाहर कैशिंग के साथ काम करती हैं

संपादित करें (टिप्पणी पर प्रतिक्रिया):

यादृच्छिक क्रम प्लगइन के साथ यादृच्छिक? यह स्वचालित रूप से उस ब्लॉक को गैर-परिवर्तनीय के रूप में चिह्नित करता है हालांकि यह पेज कैश मॉड्यूल को प्रभावित नहीं करता है। अब एक नया स्मार्टकैच / डायनेमिक पेज कैश मॉड्यूल है लेकिन यह केवल अगले बीटा (या RC!) में होगा। वह अंत में शेष पृष्ठ को कैश करने की अनुमति देगा और बस उस हिस्से का निर्माण करेगा।

लेकिन इस तरह के एक मामले को शायद कुछ जावास्क्रिप्ट का उपयोग करके सबसे अच्छा लागू किया जाता है। यदि केवल कुछ नोड्स हैं, तो आप उन सभी को प्रदर्शित कर सकते हैं, डिफ़ॉल्ट रूप से छिपे हुए हैं और बस यादृच्छिक रूप से उनमें से एक को दृश्यमान बनाते हैं। या जावास्क्रिप्ट के साथ एक URL का अनुरोध करें जो एक यादृच्छिक विज्ञापन लौटाता है या एक बेहतर तरीके से एन URL का एक यादृच्छिक यात्रा करता है जो प्रत्येक विज्ञापन को वापस करता है (जैसे URL की सूची लौटाकर और फिर उनमें से एक को चुनना। आप सीधे छवि URL के लिए भी ऐसा कर सकते हैं। ।


विज्ञापन ब्लॉक करने के लिए विचार एक यादृच्छिक नोड देता है।
अमीन

मैं स्वच्छ समाधान के लिए अगली रिलीज का इंतजार करूंगा :)
अमीन

हां, रैंडम व्यू रैंडम सॉर्ट प्लगइन से है। मैं सहमत हूं, एक जावास्क्रिप्ट ब्लॉक सामग्री उत्पन्न करना संभव है जो संस्थाओं की सूची में डालती है और फिर उनमें से एक को लेने और अजाक्स करने के लिए कुछ यादृच्छिक या परिपत्र फ़ंक्शन के साथ ब्राउज़र परत पर निर्णय लेती है। हालांकि, मेरे पास कुछ पृष्ठों में इस तरह के एक से अधिक ब्लॉक होंगे और सर्वर साइड समाधान सबसे अच्छा फिट होगा।
अमीन

10

यदि यह एक कस्टम ब्लॉक है, तो आप कैश एपीआई का उपयोग कर सकते हैं , और कैश अधिकतम आयु को 0 पर सेट कर सकते हैं , उदा

$build = [
 // ...
 '#cache' => [
   'max-age' => 0,
 ],
];

यदि यह एक मौजूदा ब्लॉक है, तो आप इसे रेंडर सरणी में जोड़ने के लिए इसे बदल सकते हैं।


सवाल में बताया गया है, मेरा ब्लॉक एक व्यू ब्लॉक है। मुझे लगता है कि php / मॉड्यूल लेयर में हस्तक्षेप करना बहुत जटिल है।
अमीन

1
दुर्भाग्य से, यह वैसे भी काम नहीं करता है (यह कोशिश की)। ऐसा लगता है कि पेज पेजचे से दिया गया है और इसमें पुराना ब्लॉक है। लेकिन मैं अभी भी जांच कर रहा हूं।
रेनर फेइक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.