2011-11-23 11 views
11

मैं इंटरनेट एक्सप्लोरर 9 के कैशिंग पर अपने बालों को फाड़ रहा हूं।इंटरनेट एक्सप्लोरर 9 कैश हेडर को अनदेखा कर रहा है

मैंने क्वेरी स्ट्रिंग मान के आधार पर एक पर्ल स्क्रिप्ट से कुकीज़ की श्रृंखला सेट की है। इन कुकीज़ में बैनर और रंग जैसे पृष्ठ पर विभिन्न चीजों के बारे में जानकारी होती है।

मेरी समस्या यह है कि आईई 9 में यह हमेशा नए मानों का उपयोग करने के बजाय कैश का उपयोग करेगा।

  1. जाएँ www.example.com/?color=blue
  2. पर्ल स्क्रिप्ट कुकी सेट करता है, मैं करने के लिए www.example.com
  3. रंग हैं वापस पुनः निर्देशित कर रहा हूँ: घटनाओं के अनुक्रम इस तरह से चलाता है नीला, सबकुछ अपेक्षित है।
  4. जाएँ www.example.com/?color=red
  5. को कुकी सेट, निर्देशित कर दिये, लाल करने के लिए सेट रंग, सब सामान्य है
  6. फिर से यात्रा www.example.com/?color=blue
  7. पर्ल स्क्रिप्ट चलाता है, कुकीज़ फिर से सेट की जाती हैं (मैंने इसकी पुष्टि की है) लेकिन! आईई 9 कैश से सभी संसाधनों को वापस लेता है, इसलिए मेरे सभी रंगों को पुनर्निर्देशित करने पर लाल रहें।

तो, हर बार जब मैं एक नया URL यह संसाधनों ताजा हो जाता है पर जाते हैं, लेकिन हर बार मैं एक पहले देखी URL पर यह उन्हें कैश से प्राप्त करता है।

निम्नलिखित मेटा टैग < सिर को example.com के >, जो मैंने सोचा था कि इस्तेमाल किया जा रहा से कैश रोका जा सके में हैं: क्या यह लायक है के लिए

<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE"> 
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE"> 
<META HTTP-EQUIV="EXPIRES" CONTENT="0"> 

- मैं भी <META HTTP-EQUIV="EXPIRES" CONTENT="-1">

की कोशिश की है

आईई 9 इन सभी निर्देशों को अनदेखा करता है। उस ब्राउज़र में अब तक सफलता प्राप्त करने का एकमात्र समय डेवलपर टूल का उपयोग करके और यह सुनिश्चित करना है कि इसे "सर्वर से हमेशा रीफ्रेश करें"

आईई मेरे हेडर को अनदेखा क्यों कर रहा है, और मैं इसे कैसे मजबूर कर सकता हूं प्रत्येक बार सर्वर की जांच करने के लिए?

+0

आप http://stackoverflow.com/questions/4360283/http-cache-control को देखा है? निजी कोशिश की? –

+0

ठीक है मैंने अभी इसे CONTENT = "निजी" पर सेट करने का प्रयास किया है और मुझे एक ही समस्या का सामना करना पड़ रहा है। –

+2

क्लाइंट-साइड एपीआई कॉल करने का प्रयास करें ... इस मामले में "हमेशा सर्वर से रीफ्रेश करें" काम नहीं कर रहा है। अब मेरे पास आईई 9 लगभग उतना ही है जितना मुझे आईई 6 – Vroomfundel

उत्तर

3

(नहीं meta टैग) HTTP हेडर के रूप में निम्नलिखित भेजने का प्रयास करें:

Cache-Control: private, must-revalidate, max-age=0 
Expires: Thu, 01 Jan 1970 00:00:00 
7

उन हेडर नहीं हैं। वे <meta> तत्व हैं, जो HTTP शीर्षलेखों के लिए एक बेहद खराब विकल्प हैं। मेरा सुझाव है कि आप Mark Nottingham's caching tutorial पढ़ लें, यह इस बारे में विस्तार से और कैशिंग निर्देशों का उपयोग करने के लिए उपयुक्त है।

इसके अलावा, किसी को भी आपको कैशिंग को private पर सेट करने के बारे में बताएं। यह ब्राउज़र में कैशिंग सक्षम करता है - यह कहता है "जब तक आप इसे किसी अन्य क्लाइंट पर अग्रेषित नहीं करते हैं तब तक कैश करना ठीक है"

0

बस उल्लेख होगा कि मुझे इस तरह की समस्या दिख रही है। लेकिन मैंने एक अलग कंप्यूटर पर आईई 9 की कोशिश की और कोई मुद्दा नहीं था। फिर इंटरनेट विकल्प पर जा रहे हैं -> सामान्य -> ​​हटाएं और हटाएं सब कुछ सही व्यवहार बहाल किया गया।कैश हटाना पर्याप्त नहीं था।

0

एचटीएमएल 5 निर्दिष्ट करने वाली एकमात्र चीजें सामग्री-प्रकार, डिफ़ॉल्ट-शैली और रीफ्रेश हैं। See the spec.

कुछ भी जो काम करने लगता है केवल ब्राउज़र की कृपा से है और आप इस पर निर्भर नहीं हो सकते हैं।

-2

जॉनस्टॉक सही है। उस कोड में टाइपिंग सामग्री को सर्वर से अपडेट करने की अनुमति देगी और न केवल पृष्ठ को रीफ्रेश करें।

<meta http-equiv="Content-Type" content="text/html; charset=utf-8; Cache-Control: no-cache" /> 

यदि आपको इसे एएसपी कोड में रखना है और इसे काम करना चाहिए तो कोड की इस पंक्ति को अपने अनुभाग में डाल दें।

+0

<मेटा http-equiv = "सामग्री-प्रकार" सामग्री = "टेक्स्ट/एचटीएमएल; charset = utf-8; कैश-कंट्रोल: नो-कैश" /> – Anthony

2

मुझे नहीं पता कि यह किसी के लिए उपयोगी होगा, लेकिन मुझे अपनी फिल्म वेबसाइट (crosstastemovies.com) पर एक ही समस्या थी। जब भी मैंने "अधिक फिल्में प्राप्त करें" बटन पर क्लिक किया (जो रेट करने के लिए फिल्मों का एक नया यादृच्छिक बैच पुनर्प्राप्त करता है) IE9 सटीक उसी पृष्ठ को वापस लाएगा और सर्वर की प्रतिक्रिया को अनदेखा करेगा ...: पी

मुझे यादृच्छिक कॉल करना पड़ा IE9 को ऐसा करने से रोकने के लिए चर। तो "index.php? Location = rate_movies" को कॉल करने के बजाय मैंने इसे "index.php? Location = rate_movies & रैंड = रैंडोमस्ट्रिंग" में बदल दिया।

सब कुछ ठीक है।

चीयर्स

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