c# ASP.NET में उपयोगकर्ता नियंत्रण कैशिंग?




caching user-controls (4)

संक्षेप में

VaryByCustom का अर्थ है, इसका मतलब है

1- नियंत्रण फिर से बनाएँ
2- कैश में नियंत्रण के कई संस्करण होने। जिसका उपयोग कस्टम शर्तों को पूरा करते समय किया जाएगा।

यह केवल तभी अच्छा है जब नियंत्रण के निर्माण के लिए बहुत समय लग रहा है और हमारे पास मेमोरी को बर्बाद न करने के लिए कैश्ड संस्करणों की सीमित संख्या है, और आवेदन को नियंत्रण गुणों तक पहुंचने की आवश्यकता होगी (जब इसे कैश किया गया है "या रिक्त")।

लेकिन यह अच्छा नहीं होगा यदि वह कस्टम स्थितियां नियंत्रण गुणों पर निर्भर करती हैं मैं इसे एक्सेस नहीं कर सकता, यह शून्य है।

उदाहरण के लिए, मैं कुछ ऐसा लिखना चाहता हूं जैसे (देशों की सूची में डिफ़ॉल्ट मान चयनित नहीं है) फिर पुन: निर्माण और कैश (इसे एक अलग स्ट्रिंग दें)

अन्यथा नहीं

जबकि अन्य ऑब्जेक्ट कॉन्ट्री सूची तक पहुंचने का प्रयास कर रहे हैं, यह रिक्त स्थान की जांच करेगा, और देश को संयुक्त राज्य अमेरिका में ड्रॉप डाउन सूची में सेट करेगा।

डेटा काहा करना काम करेगा। यही एकमात्र रास्ता है।

कौन सहमत है?

उर टाइम के लिए धन्यवाद

मैंने अपने आवेदन "header.ascx" में एक यूजर कंट्रोल बनाया है, मैं इस नियंत्रण में चयनित मेन्यू एट्रिब्यूशन को तैयार कर रहा हूं जिस पर नियंत्रण चयनित मेन्यू वेल्यू निर्दिष्ट करता है। मान लीजिए, मैंने मूल्य "घर" या "खोज" पार किया है, तो वह खोज मेनू का चयन करेगा (इसे उजागर करेगा)

मैं इस नियंत्रण को कैश करना चाहता हूं, जब चयनित मेन्यू विशेषता का मान बदलता है तो केवल कैश रिफ्रेश हो जाएगा और इसे कैश से नियंत्रण लेना चाहिए ??

क्या asp.net में उपयोगकर्ता नियंत्रण को कैश करना संभव है ?? मैं asp.net 2.0 (सी #) का उपयोग कर रहा हूँ


मुझे नहीं लगता कि नियंत्रण को कैश करने का यह एक अच्छा विचार है:

  • जब नियंत्रण पहली बार बनाया जाता है, तो इसमें उसके माता-पिता के पृष्ठ पर अन्य लोगों के बीच संदर्भ है।
  • जब आप कैश से नियंत्रण प्राप्त करते हैं, तो वे संदर्भ अब मौजूद नहीं हैं।

एक बेहतर दृष्टिकोण मुझे लगता है, उस डेटा को कैश करने के लिए है, जो कि इसके बजाय नियंत्रण का उपयोग कर रहा है। एएसपीएनईटी पृष्ठ जीवन चक्र के दौरान इतने सारे नियंत्रण बनाता है, जो कि यह एक नियंत्रण कैशिंग वास्तव में कुछ भी सुधार नहीं करता है।

तो अंत में एक बेवकूफ सवाल: क्या यह नियंत्रण एक बाधा है? क्या आपको वास्तव में कैश की आवश्यकता है?



ASP.NET में उपयोगकर्ता नियंत्रण कैशिंग को टुकड़ा कैशिंग कहा जाता है । यह आपके पृष्ठ के शीर्ष पर आउटपुट कैश निर्देश जोड़कर किया गया है:

आप नियंत्रण पर संपत्ति को सेट करके कैश में भिन्न नहीं कर सकते क्योंकि नियंत्रण वास्तव में नहीं बनाया गया है यदि यह कैश में पाया गया है। यदि आप इसे कैश किए गए कोड के नियंत्रण में पहुंचने का प्रयास करते हैं, तो यह रिक्त होगा।

क्या यह शर्त निर्धारित करती है कि नियंत्रण को कैश किया जाना चाहिए या न कि वर्तमान अनुरोध को देखकर आप निर्धारित कर सकते हैं? यदि ऐसा है, तो आप आउटपुट कैश निर्देश के अलग-अलग कस्टम विशेषता ( http://msdn.microsoft.com/en-us/library/system.web.ui.partialcachingattribute.varybycustom.aspx ) का उपयोग कर सकते हैं। आप किसी भी स्ट्रिंग को वहां पैरामीटर के रूप में रख सकते हैं और तब जब कैशिंग को ग्लोबल.एएससीएए से GetVaryByCustomString () विधि का मूल्यांकन किया जाता है और आप इस तर्क को रख सकते हैं कि क्या नियंत्रण कैश्ड होना चाहिए या नहीं।





asp.net-2.0