एएसपीनेट एप्लिकेशन के भीतर ब्राउज़र कैशिंग करने के तरीके के बारे में कोई सुझाव। मुझे कुछ अलग-अलग तरीकों को ऑनलाइन मिला है लेकिन यह सुनिश्चित नहीं था कि सबसे अच्छा क्या होगा। विशेष रूप से, मैं अपने सीएसएस और जेएस फाइलों को कैश करना चाहता हूं। वे बदलते हैं, हालांकि, यह आमतौर पर महीने में एक बार सबसे अधिक होता है।एएसपी.NET अनुप्रयोग में ब्राउज़र कैशिंग
उत्तर
एक और तकनीक आपको किसी अन्य सर्वर पर स्थिर छवियों, सीएसएस और जेएस को स्टोर करना है (जैसे CDN) जिसमें एक्सपियर हेडर सेट ठीक से सेट है। इस का लाभ दो गुना है:
- समाप्त हो रहा हैडर ब्राउज़र और प्रॉक्सी स्थिर फ़ाइलों को की सेवा आपके सर्वर से ये स्टैटिक फ़ाइलें
- CDN ऑफलोड होगा कैश करने के लिए प्रोत्साहित करेंगे।
- अपनी स्थिर सामग्री के लिए अन्य डोमेन नाम का उपयोग करके, ब्राउज़र तेज़ी से डाउनलोड हो जाएंगे। ऐसा इसलिए है क्योंकि serving resources from four or five different hostnames increases parallelization of downloads।
- यदि सीडीएन सही तरीके से कॉन्फ़िगर किया गया है और cookieless domain का उपयोग करता है तो आपके पास अनावश्यक कुकीज़ नहीं चलती हैं।
आप यह करने के लिए सबसे अच्छा शर्त है कि आईआईएस में एक्सपर्स हेडर सेट करने के लिए उन फ़ोल्डर्स पर जिन्हें आप सामग्री कैश करना चाहते हैं। यह इस स्थिर सामग्री को कैश करने के लिए सबसे आधुनिक ब्राउज़र और प्रॉक्सी को बताएगा। आईआईएस 6:
- फ़ोल्डर (उदाहरण सीएसएस या जेएस) पर राइट क्लिक करें जिसे आप ब्राउज़र द्वारा कैश करना चाहते हैं।
- क्लिक करें गुण को HTTP हेडर टैब
- चेक "सक्षम सामग्री समाप्ति"
- समाप्ति के लिए कुछ लंबी अवधि सेट
- जाओ,
याहू डेवलपर ब्लॉग talks about this technique "90 दिनों के बाद समाप्त हो जाती" की तरह ।
मेरे पास आईआईएस तक पहुंच नहीं है। मुझे लगता है कि मैं जो खोज रहा था वह कोड के माध्यम से ऐसा करने का एक अच्छा तरीका था। – Jason
यदि एएसपी.नेट सीएसएस और जेएस फाइलों की सेवा कर रहा है, तो आप कोड में स्वयं एक ही तकनीक कर सकते हैं ... Response.Cache.SetExpires (DateTime.Now.AddYears (1)); – Keltex
एएसपी.नेट सेवा नहीं करेगा! डिफ़ॉल्ट रूप से एएसपी.नेट संसाधन, हालांकि उसे अनिवार्य रूप से आईआईएस तक पहुंच की आवश्यकता होगी – annakata
जब तक आप आईआईएस को जेएस/सीएसएस/छवि अनुरोधों के एएसपीनेट नियंत्रण देने के लिए कॉन्फ़िगर नहीं करते हैं, तो यह उन्हें डिफ़ॉल्ट रूप से नहीं देखेगा, इसलिए आपकी सबसे अच्छी योजना (दीर्घकालिक रखरखाव के लिए) जानबूझकर आपकी फ़ायरवॉल पर प्रतिक्रिया शीर्षकों को ट्विक करना है/trafficmanager/सर्वर या (बेहतर और क्या दुनिया के सबसे इस बिंदु पर है) संस्करण के लिए अपनी फ़ाइलें रास्ते में, अर्थात्:
इसके बजाय अपनी छाप-अप में इस लेखन की:
http://www.foo.com/cachingmakesmesad.css
इसका उपयोग करें:
http://www.foo.com/cachingmakesmesad.css?v1
.. और जब आपको प्रभावी ढंग से कैश साफ़ करने की आवश्यकता होती है तो संस्करण संख्या बदलें। यदि यह हर बार होता है तो आप इसके बजाय एक GUID या डेटास्टैम्प भी जोड़ सकते हैं, लेकिन मैं किसी भी अवसर पर नहीं सोच सकता जहां मैं वास्तव में ऐसा करना चाहता हूं।
मैंने सोचा था कि अपने प्रश्न विरोधी कैश, लेकिन यह फिर से पढ़ने मैं देख रहा हूँ मैं वहाँ एक अच्छा जवाब व्यर्थ था: पी
लंबी कहानी संक्षेप में, ब्राउज़र सामान्य रूप से बहुत आक्रामक समर्थक कैशिंग "सरल" संसाधन हैं इसलिए आपको इसके बारे में चिंता करने की ज़रूरत नहीं है, लेकिन अगर आप इसके बारे में कुछ करना चाहते हैं तो आपको उपर्युक्त कारणों से फ़ायरवॉल/ट्रैफिकमैनगर/आईआईएस तक पहुंच प्राप्त करनी होगी (एएसपी.नेट को एक मौका नहीं दिया जाएगा चूक)।
हालांकि ... कोई तरीका नहीं है कि आप पूरी तरह से कैशिंग को मजबूर कर सकते हैं, और न ही आपको चाहिए। कैश किया गया है और कैश नहीं है सही तरीके से अंतिम उपयोगकर्ता का निर्णय है, आप जो भी कर सकते हैं वह दृढ़ता से अनुरोध है।
यह ध्यान में रखना महत्वपूर्ण है कि कैश-कंट्रोल या हेडर के बिना भी अधिकांश ब्राउज़र जेएस और सीएसएस जैसी सामग्री को कैश करेंगे। क्या होना चाहिए हालांकि ब्राउजर संसाधन की हर बार इसकी आवश्यकता हो, लेकिन आमतौर पर "304 अनमोडिफाइड" प्रतिक्रिया प्राप्त होगी और ब्राउज़र तब कैश किए गए आइटम का उपयोग करेगा। यह अभी भी काफी महंगा हो सकता है क्योंकि यह सर्वर के लिए एक राउंड ट्रिप है लेकिन संसाधन स्वयं नहीं भेजा जाता है, इसलिए बाइट ट्रांसफर सीमित है।
आईई डिफ़ॉल्ट रूप से कैशिंग के संबंध में कोई विशिष्ट निर्देश नहीं छोड़ेगा, यह निर्धारित करने के लिए कि क्या इसे किसी आइटम को फिर से अनुरोध करने के लिए परेशान होना चाहिए या नहीं। स्पष्ट रूप से यह नहीं बताया गया कि यह संसाधन को कैश कर सकता है। इसकी ह्यूरिस्टिक्स संसाधन की आखिरी संशोधित तारीख पर आधारित होती है, पुरानी इसकी संभावना कम हो जाती है, यह अब इसकी सामान्य तर्क है। बहुत ऊनी
स्पष्ट रूप से यदि आप एक साइट परफॉर्मेंट बनाना चाहते हैं तो आपको ऐसी कैश सेटिंग्स पर नियंत्रण रखना होगा। यदि आपके पास इन सेटिंग्स तक पहुंच नहीं है तो प्रदर्शन के बारे में चिंता न करें। बस प्रायोजक को सूचित करें कि यह अच्छा प्रदर्शन नहीं कर सकता क्योंकि उन्होंने एक मंच को सुविधाजनक नहीं बनाया है जो आपको इसे वितरित करने देता है।
इन नेट में आप अपनी जावास्क्रिप्ट, सीएसएस और छवियों को एम्बेडेड संसाधनों के रूप में सेट अप कर सकते हैं। नेट तब आपके लिए फ़ाइल समाप्ति को संभालेगा। इस दृष्टिकोण का नकारात्मक पक्ष यह है कि आपको परिवर्तनों के प्रत्येक सेट के लिए एक नया निर्माण करना है (यह आपके तैनाती और वर्कफ़्लो के आधार पर उल्टा हो सकता है)।
आप ईटैग का भी उपयोग कर सकते हैं, लेकिन कुछ मामलों में जो कुछ मैं समझता हूं उससे यह अच्छी तरह से काम नहीं करता है यदि आपके पास IIS and apache Webservers hosting your images का मिश्रण है, (या यदि आप भविष्य में स्विच करने की योजना बना रहे हैं)।
आप केवल यह सुनिश्चित कर सकते हैं कि फ़ाइल की तारीख नई है, और सर्वर को आपके लिए इसे संभालने दें, लेकिन आपको यह सुनिश्चित करना होगा कि सर्वर सही तरीके से कॉन्फ़िगर किया गया है।
आप
<system.webServer>
<staticContent>
<clientCache httpExpires="Tue, 12 Apr 2016 00:00:00 GMT" cacheControlMode="UseExpires" />
</staticContent>
</system.webServer>
अधिक जानकारी के लिए clientCache documentation देखें web.config में निम्न कोड जोड़कर स्थिर सामग्री को कैश कर सकते हैं।
- 1. एएसपी.NET कैशिंग अनुप्रयोग
- 2. एएसपी.NET अनुप्रयोग में खोज परिणामों के लिए कैशिंग आर्किटेक्चर
- 3. एएसपी.NET अनुप्रयोग
- 4. एएसपी.Net वेब अनुप्रयोग
- 5. एएसपी.NET अनुप्रयोग
- 6. वेब अनुप्रयोग उन्नयन पर ब्राउज़र कैशिंग को रोकना
- 7. परीक्षण एएसपी.NET वेबफॉर्म अनुप्रयोग
- 8. उत्तोलन ब्राउज़र कैशिंग
- 9. लीवरेज ब्राउज़र कैशिंग
- 10. ब्राउज़र कैशिंग पृष्ठभूमि छवियों कैशिंग है?
- 11. एसिंक और एएसपी.Net अनुप्रयोग
- 12. एएसपी.NET एमवीसी अनुप्रयोग
- 13. एएसपी.NET एमवीसी वेब अनुप्रयोग
- 14. एएसपी.NET अनुप्रयोग परिनियोजन
- 15. एएसपी.NET अनुप्रयोग के प्रदर्शन में सुधार
- 16. एएसपी.NET अनुप्रयोग पर निगरानी लोड
- 17. एएसपी.NET ऐप्स में कैशिंग के संबंध में सर्वोत्तम अभ्यास
- 18. एएसपी.Net
- 19. कैश-नियंत्रण हैडर और ब्राउज़र कैशिंग IIS7
- 20. ब्राउज़र कैशिंग के लिए सर्वलेट फ़िल्टर?
- 21. एक पागल ब्राउज़र की तरह क्रोम कैशिंग
- 22. एम्बेड ब्राउज़र आधारित डेस्कटॉप अनुप्रयोग
- 23. कैशिंग अनुप्रयोग में रेडिस बनाम डिस्क का प्रदर्शन
- 24. क्लासिक एएसपी इंट्रानेट और नई एएसपी.NET अनुप्रयोग
- 25. पता लगाना कि जब कोई एएसपी.NET अनुप्रयोग
- 26. आईएसपी 500.19 एएसपी.NET 4.0 उप-अनुप्रयोग
- 27. क्या कोई एएसपी.NET एमवीसी संदर्भ अनुप्रयोग
- 28. ब्राउज़र में फ्लेक्स एप्लिकेशन कैशिंग को रोकना (एकाधिक मॉड्यूल)
- 29. एएसपी.Net
- 30. एएसपी.Net
यह प्रश्न देखें: http://stackoverflow.com/questions/914027/disabling-browser-caching-for-all-browsers-from-asp-net –