2011-03-16 3 views
7

एएसपी.Net एमवीसी 3.0 एप्लिकेशन बनाते समय, मैं एक क्रिया पर आउटपुट कैश विशेषता शामिल कर सकता हूं, और कैश जारी रहेगा अवधि को परिभाषित कर सकता हूं। इस अवधि के बाद, किसी भी गतिविधि से आग लगने से होने वाली गतिविधि से इस कैश किए गए परिणाम को त्याग दिया जा सकता है और ताज़ा किया जा सकता है।एएसपी.नेट एमवीसी 3.0 विशेषता [आउटपुट कैश] - क्या यह वैश्विक है, या सत्र द्वारा?

मेरा प्रश्न है ... क्या यह उपयोगकर्ता कैश आउटपुट सभी उपयोगकर्ता सत्रों के लिए वैश्विक है या यह प्रत्येक सत्र के लिए विशिष्ट कैश विकल्प है। दूसरे शब्दों में, यदि उपयोगकर्ता 1 अनुरोध करता है जहां आउटपुट कैश विशेषता वाला कोई क्रिया 1 घंटे पर सेट किया जाता है तो दोपहर (12:00 अपराह्न) पर उनके अनुरोध को शुरू होता है। उपयोगकर्ता 2 एक ही कार्रवाई का अनुरोध करता है, लेकिन दोपहर-तीस (12:30 अपराह्न) कहता है। क्या कैश किए गए परिणाम दोनों उपयोगकर्ताओं के लिए समान होंगे, और यदि ऐसा है, तो क्या उपयोगकर्ता 2 के लिए कैश आउटपुट 1:00 बजे रीफ्रेश किया जाएगा?

उत्तर

6

निर्भर करता है। यदि आपके यूआरएल में कोई उपयोगकर्ता विशिष्ट भाग (उदा। ~/blogs/userid/1) है, तो हां, अन्यथा यह सत्र विशिष्ट नहीं है। आप इसे पैरा द्वारा भिन्नता के आधार पर ट्यून कर सकते हैं ...

एएसपी नेट एमवीसी में कैशिंग वेब फॉर्म से अलग नहीं है, यह वही आधारभूत संरचना है जो यूआरएल-आधारित है।

+0

मेरे पास एक कैशिंग प्रश्न है [यहां] (https://stackoverflow.com/questions/38965684/is-there-any-http-caching-for-asp-net-web-forms)। अपने इनपुट की सराहना करें – Lijo

5

आप अलग-अलग प्रकार का उपयोग कर सकते हैं जैसे अलीस्टैड ने कहा, अवधि तब सत्र विशिष्ट होगी, अन्यथा यह नहीं है।

[OutputCache(Duration=10, VaryByParam="none")] 

http://www.asp.net/mvc/tutorials/improving-performance-with-output-caching-cs

+0

मुझे आपका उत्तर पसंद है क्योंकि आपने एक उदाहरण प्रदान किया है। धन्यवाद। +1। चूंकि अलीस्टाड ने वास्तव में पहले एक ही जवाब प्रदान किया था, इसलिए मैं उत्तर @ एलीओस्टाड का पुरस्कार दे रहा हूं। – barrypicker

+0

सत्र अवधि पर कितनी अवधि इसे चालू कर सकती है? मुझे यह समझ नहीं कर सकते हैं ... – Zote

+1

केवल बात यह है कि VaryByParam कर सकते हैं अद्वितीय कैश्ड क्वेरी स्ट्रिंग या रूप मूल्यों पर आधारित प्रतियां बनाने है। कैशिंग केवल सत्र-विशिष्ट होगा यदि उपयोगकर्ता की आईडी या कोई अन्य पहचान मान क्वेरी या फॉर्म पैरामीटर में शामिल है। –

0

आप आसानी से यह Session निर्भर एक VaryByCustom का उपयोग करने और SessionId (बहुत सस्ती आपरेशन) लौट कर सकते हैं।