क्वेरी के साथ URL कैशिंग अक्षम करता है?


12

क्या URL से जुड़े क्वेरी स्ट्रिंग के कारण ब्राउज़र कभी भी इसे कैश नहीं करता है? उदाहरण के लिए, मेरी साइट इस तरह से कुछ करती है:

/radar-picture.png?v=sep2013

और ऐसा प्रतीत होता है कि फायरफॉक्स उस चित्र को कभी कैश नहीं करता है; यह हर अनुरोध पर डाउनलोड किया जाता है।

मैं फायरफॉक्स को कैश करना चाहता हूं, जब तक वह चाहता है। मैं केवल इसे डाउनलोड करने के लिए बाध्य करना चाहता हूं जब v=पैरामीटर बदल गया है।


1
मुझे लगता है कि आप इसे पूरा कर सकते हैं, यदि आप क्वेरी के बजाय केवल फ़ाइल नाम ही बदलते हैं। तो अब फ़ाइल नाम होगा radar-picture-sep2013.pngऔर जब भविष्य में यह किसी बिंदु पर बदल जाएगा radar-picture-jan2014.png। आप PNG की अधिकतम आयु को एक वर्ष तक कॉन्फ़िगर कर सकते हैं, जब तक कि फ़ाइल नाम में परिवर्तन न हो जाए, ब्राउज़र लंबे समय तक कैश्ड चित्र को लोड कर सकता है।
vstm 18

जवाबों:


3

स्थैतिक संसाधन (जैसे छवि, CSS या जावास्क्रिप्ट) के लिए क्वेरी-स्ट्रिंग कुंजी / मान युग्म जोड़ना कैशिंग समस्याओं का कारण बन सकता है

विशेष रूप से, जब से आपने फ़ायरफ़ॉक्स का उल्लेख किया है , तो आपका मुद्दा एक 'कैश टक्कर' से संबंधित हो सकता है, जहाँ:

फ़ायरफ़ॉक्स डिस्क कैश हैश फ़ंक्शंस URL के लिए टकराव उत्पन्न कर सकते हैं जो केवल थोड़ा भिन्न होते हैं, केवल 8-वर्ण सीमाओं पर। जब संसाधनों में एक ही कुंजी होती है, तो केवल एक ही संसाधन डिस्क कैश के लिए होता है; एक ही कुंजी के साथ शेष संसाधनों को फिर से ब्राउज़र रीस्टार्ट में लाना होगा। इस प्रकार, यदि आप फ़िंगरप्रिंटिंग का उपयोग कर रहे हैं या अन्यथा प्रोग्रामेटिक रूप से फ़ाइल URL बना रहे हैं, तो कैश हिट दर को अधिकतम करने के लिए, फ़ायरफ़ॉक्स हैश टक्कर मुद्दे से यह सुनिश्चित करने से बचें कि आपका एप्लिकेशन 8 से अधिक वर्ण सीमाओं पर भिन्न होने वाले URL उत्पन्न करता है।

[स्रोत: https://developers.google.com/speed/docs/best-practices/caching ]


7
"8-चरित्र सीमा" क्या है और मैं इस टकराव से कैसे बच सकता हूं? मेरे URL तब कैसे दिखना चाहिए?
एंड्रयू

2

स्टैकओवरफ़्लो पर यह जवाब दावा करता है कि कुछ ब्राउज़र एड्रेस बार में दर्ज करने के लिए अलग-अलग तरीके से प्रतिक्रिया करते हैं। एक लिंक पर क्लिक करने पर जब यूआरएल में एक क्वेरी स्ट्रिंग होती है: https://stackoverflow.com/a/85386/1145388

जब आप परीक्षण कर रहे हों, तो सुनिश्चित करें कि आप यूआरएल बार में रिफ्रेश या हिट करने के बजाय लिंक पर क्लिक कर रहे हैं।


2
मुझे लगता है कि स्टैकओवरफ्लो पर जवाब पुराना हो सकता है। जब मैं स्टाइलशीट style.css?v=sep2013और 150KiB पर क्वेरी स्ट्रिंग डालता हूं background-image:url('bgimage.jpg?v=sep2013');, तो साइट को नेविगेट करना (लिंक पर क्लिक करके, या एड्रेस-बार में टाइप करना) फायरफॉक्स में बहुत धीमा है।
श्री स्मिथ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.