2012-05-01 17 views
5

में बैक बटन पर क्लिक करके पृष्ठ को फिर से लोड करें मेरे पास एक पृष्ठ है जो पूरे शरीर को दर्शक के स्क्रीन से संक्रमण के रूप में एनिमेट करता है। यह ठीक काम करता है लेकिन जब उपयोगकर्ता ब्राउज़र में बैक बटन क्लिक करता है फ़ायरफ़ॉक्स इतिहास से कैश किए गए पृष्ठ को लाता है जिसमें शरीर नहीं होता है।फ़ायरफ़ॉक्स

तो बैक बटन के माध्यम से पृष्ठ पर फिर से लोड करना मेरे लिए आसान है।

मैंने पृष्ठ को फिर से लोड करने के लिए निम्न कोड का प्रयास किया है ताकि दोबारा रीलोडिंग से बचने के लिए।

<script type="text/javascript"> 
    window.onload=function(){ 
    var e=document.getElementById("refreshed"); 
    if(e.value=="no")e.value="yes"; 
    else{e.value="no";location.reload();} 
    } 
</script> 
<input type="hidden" id="refreshed" value="no"> 

यह इस मुद्दे को हल नहीं किया गुमनाम समारोह भी लागू नहीं किया गया।

इसलिए मैंने हेडर सेट करने का प्रयास किया ताकि ब्राउज़र पृष्ठ को कैश न करे।

<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"> 

यह भी इस मुद्दे को हल नहीं किया।

पृष्ठ क्रोम में ठीक काम करता है।

मैं का उपयोग 12.0

है Firefox के संस्करण मैं कैसे पेज जावास्क्रिप्ट, JQuery या किसी अन्य ग्राहक के पक्ष स्क्रिप्ट का उपयोग कर फिर से लोड करने मिल सकता है?

+0

मुझे नहीं लगता कि यह क्रोम में काम करता है, मान हमेशा 'नहीं' –

+0

क्रोम में अज्ञात फ़ंक्शन का आह्वान किया जाता है और पृष्ठ को पुनः लोड नहीं किया जाता है। लेकिन फिर भी जब पृष्ठ कैश नहीं किया गया है, इससे कोई फर्क नहीं पड़ता। मेरी समस्या यह है कि फ़ायरफ़ॉक्स में फ़ंक्शन को भी शामिल नहीं किया जाता है। – mahesmohan

उत्तर

5

कोई ऑनलोड स्मृति नहीं है जो किसी मेमोरी-कैश किए गए पृष्ठ पर नेविगेट करते समय आग लगती है।

आप तीन मुख्य विकल्प हैं, मुझे लगता है:

  1. onpageshow घटना (जब एक कैश्ड पृष्ठ पर जाकर जो आग करता है) का प्रयोग करें।
  2. अनलोड ईवेंट श्रोता (जो केवल खाली फ़ंक्शन हो सकता है) जोड़कर अपने पृष्ठ की इन-मेमोरी कैशिंग को रोकें।
  3. परेशान अनलोड एनीमेशन मत करो।
+0

यहां तक ​​कि मुझे कष्टप्रद अनलोड एनीमेशन से नफरत है, लेकिन क्लाइंट जो मैं इसे अनलोड एनीमेशन के लिए विशेष रूप से पूछने के लिए कर रहा हूं। बहुत बहुत धन्यवाद Boris। – mahesmohan

+0

आह, हाँ। ग्राहक इस तरह के एक पिटा के थोड़ा सा हैं। ;) –

+0

+1। * "एक अनलोड ईवेंट श्रोता जोड़कर अपने पृष्ठ की इन-मेमोरी कैशिंग को रोकें" *, यह अच्छी तरह से काम करता है। कुछ [यहां प्रलेखन] हैं (https://developer.mozilla.org/en-US/docs/Using_Firefox_1.5_caching)। – Qtax

0

मैंने कोशिश नहीं की लेकिन सेटटाइमआउट मदद कर सकता है।

<script> 
setTimeout(function() { 
var e=document.getElementById("refreshed"); 
    if(e.value=="no")e.value="yes"; 
    else{e.value="no";location.reload();} 
}, 1000); 
</script>