मैं यह पता लगाने की कोशिश कर रहा हूं कि सिंगल पेज ऐप्स के लिए वेब ब्राउज़र कैश को ठीक से कैसे संभालना है।
मेरे पास काफी विशिष्ट डिजाइन है: एसपीए को लागू करने वाली कई HTML, JS और CSS फाइलें और SPA द्वारा खपत JSON डेटा का एक गुच्छा। समस्या तब उत्पन्न होती है जब मैं किसी अपडेट को पुश करना चाहता हूं: मैं साइट के स्थिर भाग और उस कोड को अपडेट करता हूं जो एक ही समय में JSON उत्पन्न करता है, लेकिन क्लाइंट ब्राउज़र में अक्सर स्थिर भाग कैश्ड होता है, इसलिए पुराना कोड नए डेटा को संसाधित करने की कोशिश करता है और हो सकता है (किए गए परिवर्तनों के आधार पर) समस्याओं में चले। (विशेष रूप से, IE बिना किसी अमान्य जेएस के उपयोग के बारे में क्रोम या फ़ायरफ़ॉक्स की तुलना में अधिक आक्रामक लगता है।
इससे निपटने का सबसे अच्छा तरीका क्या है?
- सुनिश्चित करें कि मेरे JSON परिवर्तन पीछे-संगत हैं, और मान लें कि ब्राउज़र कैश एक उचित समय सीमा में समाप्त हो जाएगा।
- स्थिर JS और JSON दोनों में किसी प्रकार के संस्करण संख्या को एम्बेड करें, फिर
window.location.reload(true);
वे मिलान न होने पर निष्पादित करें । - हेडर (
must-revalidate
याno-cache
जो कुछ भी हो, ) के उपयुक्त संयोजन का पता लगाएं ( यह कैसे करना है, इस पर स्रोत अलग-अलग होते हैं ) यह सुनिश्चित करने के लिए कि ब्राउज़र हमेशा हर लोड पर सभी संसाधनों को अमान्य करता है, भले ही इसका मतलब है कि साइट को लोड करने के लिए कुछ अतिरिक्त गोल यात्राएं। - मेरे कैश-नियंत्रण को माइक्रो-प्रबंधित करें और हेडर को समाप्त करें ताकि जब मैं अपडेट को पुश करना चाहता हूं तो स्थिर सामग्री समाप्त हो जाए।
- कुछ और?