मैं पृष्ठों को अज्ञात उपयोगकर्ताओं के लिए Drupal 8 कैशिंग तंत्र से लाभान्वित करना जारी रखना चाहूंगा, केवल उन विशिष्ट ब्लॉकों को छोड़कर, जिन्हें व्यू से उत्पन्न होने वाले प्रत्येक पृष्ठ को ताज़ा करना चाहिए।
क्या यह तकनीकी रूप से संभव है? कैसे?
मैं पृष्ठों को अज्ञात उपयोगकर्ताओं के लिए Drupal 8 कैशिंग तंत्र से लाभान्वित करना जारी रखना चाहूंगा, केवल उन विशिष्ट ब्लॉकों को छोड़कर, जिन्हें व्यू से उत्पन्न होने वाले प्रत्येक पृष्ठ को ताज़ा करना चाहिए।
क्या यह तकनीकी रूप से संभव है? कैसे?
जवाबों:
उस दृश्य को क्या दर्शाता है?
D8 में कैश टैग और संदर्भ होते हैं जो यदि कुछ बदलता है तो स्वचालित रूप से ब्लॉक को अमान्य कर देगा।
इसलिए यदि आपके पास नोड्स की एक सूची है, तो हर बार एक नोड जोड़े जाने या अपडेट किए जाने पर, उस ब्लॉक को अपडेट किया जाएगा, लेकिन तब तक, कैश्ड संस्करण का उपयोग किया जाता है। जो हर पेज पर पुनर्निर्माण से बहुत बेहतर है।
यह पेज कैश के साथ भी काम करता है, उन पेजों को भी स्वचालित रूप से अपडेट किया जाएगा।
कई, कई चीजें बस किसी भी मैनुअल कॉन्फ़िगरेशन की आवश्यकता के बिना, बॉक्स से बाहर कैशिंग के साथ काम करती हैं ।
संपादित करें (टिप्पणी पर प्रतिक्रिया):
यादृच्छिक क्रम प्लगइन के साथ यादृच्छिक? यह स्वचालित रूप से उस ब्लॉक को गैर-परिवर्तनीय के रूप में चिह्नित करता है हालांकि यह पेज कैश मॉड्यूल को प्रभावित नहीं करता है। अब एक नया स्मार्टकैच / डायनेमिक पेज कैश मॉड्यूल है लेकिन यह केवल अगले बीटा (या RC!) में होगा। वह अंत में शेष पृष्ठ को कैश करने की अनुमति देगा और बस उस हिस्से का निर्माण करेगा।
लेकिन इस तरह के एक मामले को शायद कुछ जावास्क्रिप्ट का उपयोग करके सबसे अच्छा लागू किया जाता है। यदि केवल कुछ नोड्स हैं, तो आप उन सभी को प्रदर्शित कर सकते हैं, डिफ़ॉल्ट रूप से छिपे हुए हैं और बस यादृच्छिक रूप से उनमें से एक को दृश्यमान बनाते हैं। या जावास्क्रिप्ट के साथ एक URL का अनुरोध करें जो एक यादृच्छिक विज्ञापन लौटाता है या एक बेहतर तरीके से एन URL का एक यादृच्छिक यात्रा करता है जो प्रत्येक विज्ञापन को वापस करता है (जैसे URL की सूची लौटाकर और फिर उनमें से एक को चुनना। आप सीधे छवि URL के लिए भी ऐसा कर सकते हैं। ।
यदि यह एक कस्टम ब्लॉक है, तो आप कैश एपीआई का उपयोग कर सकते हैं , और कैश अधिकतम आयु को 0 पर सेट कर सकते हैं , उदा
$build = [
// ...
'#cache' => [
'max-age' => 0,
],
];
यदि यह एक मौजूदा ब्लॉक है, तो आप इसे रेंडर सरणी में जोड़ने के लिए इसे बदल सकते हैं।