2013-05-23 4 views
23

के कैशिंग को रोकें मेरे पास एक HTML पृष्ठ है। समस्या यह है कि मैं उपयोगकर्ताओं को नई सामग्री पर हर बार पेज रीफ्रेश करना नहीं चाहता हूं।एचटीएमएल पेज

मैं निम्नलिखित कोड है क्रम में यह सुनिश्चित करें कि पेज कैश्ड नहीं होता बनाने के लिए:

 <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate"/> 
    <meta http-equiv="Pragma" content="no-cache"/> 
    <meta http-equiv="Expires" content="0"/> 

समस्या मैं अभी भी आदेश सबसे मौजूदा सामग्री प्राप्त करने के लिए पृष्ठ पर एक ताज़ा करने की ज़रूरत है, दिखाने के लिए। क्या मुझसे कुछ गलत हो रही है? क्या मुझे कुछ अन्य टैग का उपयोग करना चाहिए?

+0

क्या यह वास्तव में काम करेगा? मैं कहूंगा, php –

+0

@RyandeVries का उपयोग करें - चूंकि सवाल यह कहता है कि * काम नहीं करता है ... – Quentin

+0

मुझे लगता है कि मेरी राय में यह कभी काम नहीं करेगा, लेकिन मुझे यकीन नहीं है! –

उत्तर

10

आपके पास मौजूद मान ठीक हैं, लेकिन meta http-equiv is highly unreliable। आपको वास्तविक HTTP हेडर का उपयोग करना चाहिए (यह बताएं कि यह आपके सर्वर पर निर्भर करेगा, उदाहरण के लिए for Apache)।

20

आपके द्वारा दिखाए गए कोडेनिपेट ने ब्राउज़र को वेबसाइट लोड किया है, हर बार यह तक पहुंचता है, जो उपयोगी होता है यदि आप लगातार अपडेट करते हैं, लेकिन फिर भी एक स्थिर पृष्ठ है।

<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate"/> 
<meta http-equiv="Pragma" content="no-cache"/> 
<meta http-equiv="Expires" content="0"/> 

मामले में आप, यह लाइव अपडेट निष्पादित करना चाहते हैं जैसे कि यह एक (छ) मेल खाते में उदाहरण के लिए करता है, तो आप इसे (पेज के कुछ हिस्सों) खुद को ताज़ा करने की जरूरत है। इस मामले में जावास्क्रिप्ट का प्रयोग करें, जैसे कि यह in this question या अजाक्स कॉल दिखाया गया है।

$('#something').click(function() { 
    location.reload(); 
}); 
+0

गारिन, मेरे पास एक HTML पृष्ठ है और हां, मैं लगातार अपडेट करता हूं। जैसा कि <मेटा http-equiv = "कैश-कंट्रोल" सामग्री = "नो-कैश, नो-स्टोर, जरूरी-पुनरीक्षित" /> काम नहीं करना चाहिए? ऐसा लगता है कि मुझे अभी भी रीफ्रेश करने की आवश्यकता है –

+0

मुझे अभी भी निश्चित रूप से पता नहीं है कि आपको क्या चाहिए/क्या करना है। यदि आपको वास्तव में ** लाइव अपडेट ** की आवश्यकता है, जबकि उपयोगकर्ता अभी भी आपका पृष्ठ देख रहा है, तो आपको जावास्क्रिप्ट/अजाक्स समाधान के लिए जाना होगा। लेकिन यदि आप चाहते हैं कि उपयोगकर्ता वेबसाइट का नवीनतम संस्करण ** हर बार जब वह इसे देखे ** ** जैसे कि आप अपनी वेबसाइट को रोज़ाना अपडेट करते हैं, तो आपका समाधान काफी अच्छा है। – Garrin

+1

कारण यह है कि हम HTML पृष्ठ पर अपडेट कर रहे हैं जो एक स्थिर पृष्ठ है। हम इन्हें हर 2 दिनों में बनाते हैं। मुझे रीफ्रेश पर क्लिक करने के बजाय उपयोगकर्ता को नवीनतम संस्करण देखने के लिए पसंद है। –

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