2011-05-06 13 views
5

के भीतर asp.net कैश मैं उन डेटाबेस से खींचा जा रहा ऑब्जेक्ट्स को कैश करना चाहता हूं जो अक्सर संशोधित नहीं होते हैं, क्योंकि हर बार पेज लोड होने पर लगभग 2000 आइटम चुने जाते हैं, जिससे पेज लोड के दौरान एक उल्लेखनीय प्रदर्शन समस्या उत्पन्न होती है।httpCPtext

समीक्षा here और कुछ MSDN लेख (सबसे अधिक प्रासंगिक here है) ऐसा लगता है कि इन डेटाबेस के लिए कई roundtrips करने से एक ही उपयोगकर्ता को रोकने के लिए समाधान कर रहे हैं, और एक बार HttpRequest बंद कर दिया है इस कैश समाप्त हो जाएगा उसके बाद।

क्या कोई भी भ्रम को साफ़ कर सकता है, यदि कोई पाया गया तो कोई संदर्भ संदर्भ प्रदान कर सकता है?

उत्तर

6

आप अपने ऐप डोमेन की अवधि के लिए HttpRuntime.Cache आइटमों को यहां स्टोर करना चाहते हैं, वे समाप्त हो जाते हैं, या स्केवेंग किए जाते हैं। जो पहले कभी होता है। नोट यह बिल्कुल HttpContext.Current.Cache जैसा ही है जो HttpRuntime.Cache पर इंगित करता है। सेवा परतों में बाद में आमंत्रित करना आसान है क्योंकि आपको इस बारे में चिंतित होने की आवश्यकता नहीं है कि कोई संदर्भ मौजूद है या नहीं। कैश हमेशा मौजूद है।

HttpContext.Current.Request.Items में संग्रहीत आइटम केवल उस अनुरोध की अवधि के लिए मौजूद होंगे। यह एकल अनुरोध जानकारी संग्रहीत करने के लिए उपयोगी है जिसे आपके आवेदन की कई परतों के माध्यम से पढ़ा/लिखा जा सकता है।