/ / ASP.NET Page Level Caching (प्रमाणिक साइटों के साथ) - asp.net, caching

एएसपी.नेट पेज लेवल कैशिंग (प्रमाणीकृत साइटों के साथ) - एएसपीनेट, कैशिंग

यह मेरी समझ है कि पेज लेवल कैशिंग हैयह ध्यान में नहीं रखता है कि, प्रमाणित साइटों के लिए, अलग-अलग उपयोगकर्ता सटीक पेज (URL) का अनुरोध कर सकते हैं, जबकि रेंडर किए गए पृष्ठ स्वयं अलग हैं (क्योंकि इसमें सामान विशिष्ट है जो उपयोगकर्ता विशिष्ट है)।

जब तक आप कुकियललेस प्रमाणीकरण को सक्रिय नहीं करते हैं (तब सेशनआईडी URL का हिस्सा बन जाता है) सभी उपयोगकर्ता एक ही कैश्ड पृष्ठ देखेंगे (चाहे वे कोई भी हों)।

क्या ये सही है?

उत्तर:

उत्तर № 1 के लिए 4

हां, आप इस पर 100% सही हैं।

आमतौर पर मैं उपयोगकर्ता नियंत्रणों में जाता हूँ, उन वस्तुओं के उपयोगकर्ता नियंत्रणों को कैश करने में सक्षम होने के लिए जो उपयोगकर्ता से उपयोगकर्ता में नहीं बदलते हैं।

यदि आप उपयोगकर्ता विशिष्ट डेटा को कैश करना चाहते हैं तो आप सत्र, या किसी अन्य कैश स्टोर का उपयोग कर सकते हैं।


जवाब के लिए 3 № 2

एक पृष्ठ पर आपके पास कितना डायनामिक कंटेंट है इसके आधार पर आप कैश्ड पेज पर डायनामिक कंटेंट रेंडर करने के लिए सबस्टीट्यूशन कंट्रोल का उपयोग कर सकते हैं।

यह नियंत्रण एक स्थिर विधि से बंधा है(याद रखें कि पेज लाइफ़साइकल hasn "t रन नहीं है क्योंकि यह पेज का कैश्ड वर्जन है और Page_Load आदि wiil में बनाई गई कोई भी वस्तु उपलब्ध नहीं है) जो डायनामिक कंटेंट देता है और जिसे आप पेज पर चाहते हैं, वहां पोस्ट किया जा सकता है।

<asp:Substitution ID="mySubstitution" runat="server" MethodName="GetLoggeninUserName" />

जवाब के लिए 3 № 3

दूसरा विकल्प "डोनट कैशिंग" है क्योंकि स्कॉट गुथरी इसे कहते हैं:

ASP.NET 2.0 आउटपुट कैश प्रतिस्थापन सुविधा के साथ "डोनट कैशिंग" को लागू करें

यह आपको गैर-कैश्ड "छेद" में कुछ तत्वों को लागू करते हुए पृष्ठ स्तर कैशिंग करने की अनुमति देता है।


जवाब के लिए 0 № 4

हाँ आप सही हैं और प्रतिस्थापन नियंत्रणAndy (और Zhaph) द्वारा उल्लेखित आपका सबसे अच्छा जवाब है यदि आप "ASP.NET 2.0 या इसके बाद के संस्करण का उपयोग कर रहे हैं। गैर-उपयोगकर्ता-विशिष्ट सामग्री के लिए अलग-अलग उपयोगकर्ता नियंत्रण बनाना एक कम आदर्श दृष्टिकोण है जिसका उपयोग केवल तभी किया जाना चाहिए यदि आप अटक गए हैं" ASP.NET v1.x के साथ काम करना (ताकि आपको जवाब के रूप में एंडी को चिह्नित करना चाहिए, मुझे लगता है)।