2009-09-09 14 views
10

। बटन { पृष्ठभूमि: url (../ images/button.png); }कैश किए गए चित्रों को फिर से पढ़ने के लिए ब्राउज़र को बल दें

समस्या: प्रदर्शन कारण के लिए सभी स्थैतिक सामग्री की समाप्ति शीर्षलेख है और ब्राउज़र द्वारा कैश किया गया है। जब छवि बदलती है तो उपयोगकर्ता को कैश रीफ्रेश करना चाहिए (IE में Ctrl + F5)। मैं छवियों को कैश करना चाहता हूं, लेकिन जब आवश्यक हो तो उन्हें स्वचालित रूप से पुनः लोड किया जाना चाहिए।

प्रश्न: अगला दृष्टिकोण 'मान्य' है?

.button { 
    background: url(../Images/button.png?v=1234); 
} 

जहां v = 1234 मेरी साइट का संस्करण है। मुझे नहीं पता कि यह सीएसएस में ऐसी चीजों को लिखने के लिए 100% मान्य है और मैं चाहता हूं कि ब्राउज़र अभी भी छवियों को कैश करे, यदि संस्करण समान है। क्या यूआरएल पैरामीटर भाग के साथ सभी आधुनिक ब्राउज़र सही ढंग से डेटा कैश करते हैं?

धन्यवाद।

+0

मेरा मानना ​​है कि यह हर ब्राउज़र पर काम नहीं करता है। कुछ क्वेरीस्ट्रिंग को अनदेखा करते हैं। शायद आप छवि के नाम पर संस्करण जोड़ सकते हैं। ऐसे ढांचे हैं जो ऐसा करने में मदद करते हैं, इसलिए आपको बटन_व 1.png, बटन_वी 2.png, आदि की आवश्यकता नहीं है –

+0

मेरी साइट के लिए अच्छी खबर - इसे आईई 6 के तहत 100% सही तरीके से काम करने की आवश्यकता नहीं है। यदि '1234' आईई 7-8, फ़ायरफ़ॉक्स 3+, नवीनतम क्रोम, ओपेरा और सफारी के लिए वैध समाधान है, तो यह समाधान मेरे लिए लागू है। – Roman

उत्तर

8

जो मुझे करने के लिए एक अच्छा दृष्टिकोण की तरह लग रहा है, यह आधुनिक ब्राउज़रों में सीएसएस में ठीक काम करेंगे - ब्राउज़र (?v=1234 सहित) छवि के पते पर नजर डालेंगे, देखते हैं कि यह कैश नहीं है, और एक नए सिरे से भेज निवेदन।

+3

नीचे वोट का कारण क्या है? – rahul

+0

यह पूरी तरह से सच नहीं है .. आईई सबसे ज्यादा परेशान है, वास्तव में हैश किए गए लिंक और कैश-कंट्रोल हेडर को अनदेखा करने में सक्षम है .. Altought यह "सर्वश्रेष्ठ" दृष्टिकोण है .. – yoda

+1

यह मूल प्रश्न पर टिप्पणी से संबंधित हो सकता है " मेरा मानना ​​है कि हर ब्राउज़र पर काम नहीं करता है ", यदि यह पर्याप्त ब्राउज़र ब्राउज़र का समर्थन करता है तो यह एक वैध दृष्टिकोण लगता है –

0

यह High Performance Web Sites के नियम 3 में चर्चा की गई है: "एक समाप्ति या कैश-कंट्रोल हेडर जोड़ें"। अनुशंसित दृष्टिकोणों में से एक साइट के बजाय फ़ाइलों का संस्करण है।

accompanying blog से:

ध्यान रखें, यदि आप एक सुदूर भविष्य का उपयोग हैडर आप घटक के फ़ाइल नाम बदलने के लिए जब भी घटक परिवर्तन समाप्त हो रहा है। याहू में! हम अक्सर बिल्ड प्रक्रिया के इस चरण भाग को बनाते हैं: एक संस्करण संख्या घटक के फ़ाइल नाम में एम्बेडेड है, उदाहरण के लिए, yahoo_2.0.6.js।

+0

मैं जावास्क्रिप्ट और सीएसएस फाइलों के साथ इस तरह के फ़ाइल संस्करण नामकरण (उदाहरण के लिए yahoo_2.0.6.js) करता हूं, लेकिन मेरे द्वारा बदली गई सभी छवियों का नाम बदलने के लिए मेरे लिए कहीं अधिक कठिन है, यही कारण है कि मुझे कुछ दृष्टिकोण चाहिए जो छवि फ़ाइल नाम को बदलने की आवश्यकता नहीं है। '1234' दृष्टिकोण के साथ एक और नकारात्मक पक्ष है - साइट का नया संस्करण सभी छवियों को अमान्य करता है, यहां तक ​​कि संशोधित नहीं है, लेकिन कम से कम यह रखरखाव में कम दर्दनाक है। – Roman

संबंधित मुद्दे