2012-09-20 5 views
7

से लिया जाता है मैं अद्यतन करने के लिए सभी अनुप्रयोग मैं बस संस्करण नंबर बदलने के क्रम में एक कैश यहएचटीएमएल 5 एप्लिकेशन संचय: IST प्रकट अद्यतन लेकिन फ़ाइलों appcache एक बार और

# Version 3.2 

में एक टिप्पणी के साथ प्रकट होता है। यह काम करता है, लेकिन:

जब मैं प्रकट अद्यतन करते हैं, सब कुछ सही ढंग से अद्यतन किया जाता है (नया कैश भर जाता है), लेकिन वास्तविक फ़ाइलें (पुराने) कैश से एक बार लिया जाता है। जब मैं दो बार फिर से लोड सब कुछ अद्यतन किया जाता है। इस व्यवहार सही है? क्रोम 21. का प्रयोग

धन्यवाद

उत्तर

16

हाँ, यह वर्तमान "सही" व्यवहार है। ऐसा ही होता है:

जब आप सिर्फ मैनिफ़ेस्ट फ़ाइल में परिवर्तन किए हैं, और आप ब्राउज़र को ताज़ा, यह क्या (यह मानते हुए आप ऑनलाइन हो)

  • ब्राउज़र पहली बार लोड वापस सभी फ़ाइलों होता है कैश
  • अपने मैनिफ़ेस्ट फ़ाइल के लिए तो
  • ब्राउज़र की जांच ऑनलाइन में
  • यह पता लगाता है कि मैनिफ़ेस्ट फ़ाइल बदल गया है, यह तो इस समय हालांकि नई फ़ाइलें
  • डाउनलोड करने के लिए, यह ध्यान रखें, आगे बढ़ना है, तो आप करेंगे अभी भी है क्योंकि आपके 'पुराने फ़ाइलें' पर नजर रखेंगे, ब्राउज़र डाउनलोड करने के लिए ऑनलाइन जाने से पहले पुरानी फ़ाइलों के लोड होते ही 'नई फ़ाइलें'
  • अगर इस बिंदु पर, यदि आप फिर से ताज़ा (2 बार) मारा, आप 'नई फ़ाइलें'

यह मिलना चाहिए वर्तमान में मानक व्यवहार है। कुछ लोग उपयोगकर्ता को एक और रीफ्रेश करने के लिए संकेत देते हैं (1 रीफ्रेश के बाद)

व्यक्तिगत रूप से, मुझे लगता है कि ब्राउज़र को नई फाइलें डाउनलोड करने के बाद उपयोगकर्ता को एक और ताज़ा करने के लिए ज़िम्मेदार होना चाहिए, लेकिन सही अब, ज्यादातर लोगों "window.applicationCache" से ईवेंट हैंडलर्स में डाल इस का प्रबंधन करने में मदद करने की घटनाओं में आग।

window.applicationCache उपयोग का एक उदाहरण देखने के लिए, यहां जाएं: http://www.html5rocks.com/en/tutorials/appcache/beginner/

यह "कैश अद्यतन कर रहा है" के तहत है।

1

यह here वर्णित के रूप में तुरंत कैश स्वैप करने के लिए संभव है:

function updateSite(event) { 
    window.applicationCache.swapCache(); 
} 
window.applicationCache.addEventListener('updateready', updateSite, false); 
संबंधित मुद्दे