मैंने देखा है कि कुछ ब्राउज़र (विशेष रूप से, फ़ायरफ़ॉक्स और ओपेरा) .css और .js फ़ाइलों की कैश्ड प्रतियों का उपयोग करने में बहुत जोशीले होते हैं , यहाँ तक कि ब्राउज़र सत्रों के बीच भी। जब आप इनमें से किसी एक फ़ाइल को अपडेट करते हैं तो यह एक समस्या होती है, लेकिन उपयोगकर्ता का ब्राउज़र कैश्ड कॉपी का उपयोग करता रहता है।
सवाल यह है: उपयोगकर्ता के ब्राउज़र को फ़ाइल को फिर से लोड करने के लिए मजबूर करने का सबसे सुंदर तरीका क्या है जब यह बदल गया है?
आदर्श रूप से, समाधान ब्राउज़र को पृष्ठ पर हर यात्रा पर फ़ाइल को फिर से लोड करने के लिए मजबूर नहीं करेगा। मैं एक उत्तर के रूप में अपना स्वयं का समाधान पोस्ट करूंगा, लेकिन मैं उत्सुक हूं कि अगर किसी के पास बेहतर समाधान है और मैं आपके वोटों का फैसला करूंगा।
अपडेट करें :
थोड़ी देर यहां चर्चा की अनुमति देने के बाद, मैंने जॉन मिलिकिन और दा 5आईडी के सुझाव को उपयोगी पाया है। यह पता चलता है कि इसके लिए एक शब्द है: ऑटो-वर्जनिंग ।
मैंने नीचे एक नया उत्तर पोस्ट किया है जो मेरे मूल समाधान और जॉन के सुझाव का एक संयोजन है।
एक और विचार जो SCdF द्वारा सुझाया गया था, वह फ़ाइल में फर्जी क्वेरी स्ट्रिंग को जोड़ना होगा। (कुछ अजगर कोड स्वचालित रूप से टाइमस्टैम्प का उपयोग करने के लिए एक फर्जी क्वेरी स्ट्रिंग पाई द्वारा प्रस्तुत किया गया था ।)। हालाँकि, कुछ चर्चा है कि क्या ब्राउज़र किसी फ़ाइल को क्वेरी स्ट्रिंग के साथ कैश करेगा या नहीं। (याद रखें, हम चाहते हैं कि ब्राउज़र फ़ाइल को कैश करे और इसे भविष्य की यात्राओं पर उपयोग करें। हम केवल यह चाहते हैं कि फ़ाइल को फिर से लाया जाए क्योंकि इसे बदल दिया गया है।)
चूंकि यह स्पष्ट नहीं है कि फर्जी क्वेरी स्ट्रिंग के साथ क्या होता है, मैं उस उत्तर को स्वीकार नहीं कर रहा हूं।
iframe.contentWindow.location.reload(true)
। देखें stackoverflow.com/a/22429796/999120 की विधि (4) - यह छवियों के बारे में है, लेकिन वही लागू होता है।
ExpiresActive On ExpiresDefault "modification"
:।