मैं कुछ आइटमों के लिए लंबे समय तक समाप्त करने में सक्षम होना चाहता हूं जो उपयोगकर्ता जीईटी अनुरोध के माध्यम से डाउनलोड करते हैं।एएसपी.नेट एमवीसी में एक्सपियर हेडर के साथ कैसे काम करना सबसे अच्छा है?
मैं कहना चाहता हूं कि 'यह 10 मिनट के लिए अच्छा है' (यानी मैं +10 मिनट के लिए एक्सपियर हेडर सेट करना चाहता हूं)। अनुरोध HTML के टुकड़े हैं जिन्हें पृष्ठ में AJAX के माध्यम से प्रदर्शित किया जा रहा है और वे उपयोगकर्ता के सत्र के लिए अच्छे हैं। मैं सर्वर पर वापस नहीं जाना चाहता हूं और 304 प्राप्त कर सकता हूं यदि उन्हें दोबारा ज़रूरत है - मैं चाहता हूं कि ब्राउजर कैश तुरंत मुझे वही आइटम दे।
मुझे एक लेख मिला जो लगभग MVC Action filter caching and compression के बारे में लगभग एक वर्ष पुराना है। यह समाप्त हो गया हैडर बदलने के लिए एक कस्टम ActionFilter बनाता है। मैं पहले ही संपीड़न फ़िल्टर का उपयोग कर रहा हूं जो कुछ कस्टम सीएसएस के लिए बहुत अच्छा काम करता है जो मैं उत्पन्न कर रहा हूं (94% संपीड़न दर!)।
1) मैं वास्तव में इस विधि का उपयोग करने के लिए है:
मैं दो मुख्य चिंता है। अगर मैं ऐसा करता हूं, तो मैं इसके साथ ठीक हूं, लेकिन क्या मेरे लिए ऐसा करने के लिए एमवीसी या आउटपुट कैश कार्यक्षमता में वास्तव में कोई कार्यक्षमता नहीं है? 'पारंपरिक' एएसपी.नेट में मैंने हमेशा एक्सपियर हेडर मैन्युअल रूप से सेट किया है, लेकिन हम अब और नहीं कर सकते - कम से कम नियंत्रक में नहीं।
2) यदि मैं इस फ़िल्टर विधि का उपयोग करता हूं - क्या यह आउटपुट कैश नीति में हस्तक्षेप करने जा रहा है - जिसे मैं web.config में नियंत्रित करने में सक्षम होना चाहता हूं। मैं सोच रहा हूं कि दोनों पारस्परिक रूप से अनन्य हैं और आप दोनों नहीं चाहते हैं - लेकिन मुझे पूरी तरह से यकीन नहीं है।
आपके इनपुट के लिए धन्यवाद @craig। मुझे लगता है कि # 2 के बारे में अंगूठे का नियम यह है कि यदि जेनरेट किया गया दृश्य बहुत आसान है (यानी कोई डेटाबेस एक्सेस नहीं है) तो समाप्त होने वाली सभी चीजें समाप्त हो सकती हैं। यदि दस वेब विधि कॉल की आवश्यकता है तो आप आउटपुट कैश का उपयोग करना चाहेंगे। कभी-कभी आप सिर और पूंछ सही चाहते हैं :-) –
विचार करें: यदि 10 लोग (विभिन्न कंप्यूटरों पर) आपके पृष्ठ को प्रत्येक बार 10 बार अनुरोध करते हैं, तो स्वयं ही समाप्त हो जाता है कि आपका कार्य 10 बार चलता है और सर्वर 10 अनुरोधों को संभालता है। अकेले कैशिंग का मतलब है कि आपकी कार्रवाई एक बार चलती है और सर्वर 100 अनुरोधों को संभालता है। एक साथ समाप्त हो जाती है और कैशिंग का मतलब है कि आपकी कार्रवाई एक बार चलती है और सर्वर 10 अनुरोधों को संभालता है। –