एक मानक जावा/स्प्रिंगएमवीसी/जेएसपी/jQuery वेब-ऐप में, मैं रीफ्रेश (AJAX) को सारांश घटक/पैनल रीफ्रेश करने के लिए "बैक" (या history.go (-1)) ईवेंट का पता लगाने की कोशिश कर रहा हूं सामग्री जब मैं किसी पृष्ठ पर वापस आती हूं (जहां हम सारांश घटक द्वारा प्रदर्शित बैकएंड डेटा को बदल सकते हैं)।जावास्क्रिप्ट - बीएफकेएसी/पेजशो इवेंट - event.persisted हमेशा झूठी पर सेट है?
<script type="text/javascript">
$(document).ready(function() {
window.onpageshow = function(event) {
console.log("Event:");
console.dir(event);
if (event.persisted) {
alert("non-jQuery - back to page - loaded from bfcache");
} else {
alert("non-jQuery - loaded page from server");
}
};
$(window).on("pageshow", function(event){
console.log("Event:");
console.dir(event);
if (event.originalEvent.persisted) {
alert("jquery - back to page - loaded from bfcache");
} else {
alert("jquery - loaded page from server");
}
});
});
</script>
मैं OpenSUSE लिनक्स चल रहा हूँ और फ़ायर्फ़ॉक्स और क्रोम (नवीनतम संस्करण) के साथ इस की कोशिश की है, लेकिन हर:
मैं JavaScript में निम्न (StackExchange पर कुछ पदों निम्नलिखित यह कैसे प्राप्त करने के लिए फिर से) की कोशिश की समय की घटना persisted
विशेषता false
पर सेट की गई है (मैं इसे जावास्क्रिप्ट कंसोल में देख सकता हूं और उपरोक्त कोड से पॉप-अप अलर्ट द्वारा देख सकता हूं)। हर बार, मेरा मतलब है कि यह सर्वर से लोड किया गया था या फिर बैक बटन (या 'बैक' लिंक) के माध्यम से फिर से दिखाया गया था।
मेरा इरादा सर्वर से अद्यतन डेटा के साथ सारांश घटक/पैनल को फिर से लोड करने के लिए एक AJAX कॉल करना था यदि पृष्ठ बैक बटन या history.go(-1)
कॉल के माध्यम से दिखा रहा था।
मैं भी एक अनलोड हैंडलर (करता है कुछ भी नहीं है) से bfcache में डाल दिया जा रहा है पेज को रोकने के लिए की स्थापना की कोशिश की लेकिन यह अभी भी एक BF के-कैश्ड संस्करण और event.persisted
(या event.originalEvent.persisted
) false
पर सेट है दिखा रहा है।
क्या यह संपत्ति लिनक्स पर सही ढंग से प्रबंधित की गई है? क्या मैं अपने कोड में कुछ बेवकूफ कर रहा हूँ? किसी भी मदद या विचारों की बहुत सराहना की जाएगी, धन्यवाद!
मुझे नहीं लगता कि इसका लिनक्स के साथ कुछ लेना देना है। मैं इसे मैक पर चल रहा हूं ओएस 10.9 मैवरिक्स दोनों सफारी 7 और फ़ायरफ़ॉक्स 26 के साथ। मैंने सर्वर को कैश-कंट्रोल हेडर भेजने के साथ-साथ हर तकनीक की कोशिश की है ('कैश-कंट्रोल: नो-कैश, अनिवार्य होना चाहिए, अधिकतम आयु = 0')। ब्राउज़र वास्तव में पृष्ठ को फिर से लोड नहीं करते हैं (Wireshark के माध्यम से चेक किया गया), और event.persisted हमेशा झूठा है। – giskard22