ठीक है, जैसा कि वादा किया गया है, मैं अपने स्वयं के प्रश्न का उत्तर देने जा रहा हूं।
मैंने इस बारे में बहुत कुछ सोचा है - और मैं एक समाधान के साथ आया हूं। मैं इसे कोड में काम करने में सक्षम नहीं था (मैंने बहुत मेहनत नहीं की थी), लेकिन इसे सिद्धांत में काम करना चाहिए।
तो मैंने यह तय करने के मानदंडों के बारे में सोचा कि जब किसी वेबपृष्ठ को स्टॉप का निर्णय लेना चाहिए था। मैं इसके साथ आया:
- यदि उचित समय के बाद स्क्रिप्ट की मृत्यु नहीं हुई है, तो यह माना जा सकता है कि नेविगेशन रद्द कर दिया गया है।
फिर एक jQuery ईवेंट body
या उस तरह कुछ पर निकाल दिया जा सकता है। लेकिन क्या "समय की एक रसीला राशि" का गठन होता है? मुझे लगा कि यह आंशिक रूप से पृष्ठ प्रस्तुत करने के समय (छवियों को लाने, इत्यादि) पर आधारित होगा ताकि यह पता चल सके कि उपयोगकर्ता का इंटरनेट कितना तेज़ है। यही कारण है कि ऐसा करने से मिल जा सकता है:
var start = new Date();
var time;
$("body").load(function() {
time = new Date() - start;
...
});
गुणा कि (शायद 3 या कुछ और) एक गुणांक द्वारा और एक approxamate हस्तांतरण समय मिलता है। (सर्वर को अगले पृष्ठ को उत्पन्न करने में कितना समय लगेगा, इस पर निर्भर करता है कि यह कितना गतिशील है।) फिर, इस नए time*3
का उपयोग करके आप इस तरह कुछ लिखेंगे:
$("a").click(function() { //Anything that could go to another page should filter through here
setInterval(function() {$(document).trigger("navstopped");},time*3);
}
$(document).on("navstopped") {
//Do stuff now that we assume navigation stopped.
}
मान लें। वास्तव में हम सब यहाँ कर रहे हैं। हमारे पास एक असंगत इंटरनेट कनेक्शन हो सकता है, तेज़ एक मिनट, अगले धीमा हो सकता है। सर्वर लोड भी असंगत हो सकता है। हो सकता है कि यह इस पृष्ठ के लिए निंजा जैसी छवियों की सेवा कर रहा हो, लेकिन यह अगले अनुरोधों के समूह के साथ मारा गया है, जिससे यह अगले पृष्ठ को थोड़ा धीमा कर देगा/सेवा करेगा। तो हम बस यह मान रहे हैं कि कुछ नेविगेशन को कैसे बाधित किया गया है, लेकिन हम निश्चित नहीं हैं।
अब, यह आईई के onStop
घटना के संयोजन के रूप में उपयोग किया जा सकता है, लेकिन यह वास्तव में एकमात्र क्रॉस ब्राउज़र समाधान था जिसे मैं सोच सकता था। मैं इसे काम करने में सक्षम नहीं था, लेकिन शायद कुछ jQuery देवता भविष्य में सक्षम हो सकता है।
से पहले संपादित करें: इससे पहले कि मैंने इसे पोस्ट किया, मुझे एक और विचार था। अधिक ब्राउज़र onAbort
का समर्थन करते हैं।अगर हमारे पास ऐसी तस्वीर है जो कभी लोड नहीं होती है, और उपयोगकर्ता दबाता है, तो onAbort
निकाल दिया जाएगा? भले ही कोई अन्य वेबपृष्ठ लोड हो रहा हो? इसे परीक्षण की आवश्यकता है लेकिन यह भी काम कर सकता है। मुझे हालांकि मेरा पहला विचार बेहतर पसंद है। हालांकि अस्थिर, यह इस cockamamie विचार से अधिक स्थिर है और मुझे एहसास है कि यह बुरा अभ्यास हो सकता है।
मुझे नहीं लगता कि एक विश्वसनीय तरीका होगा क्योंकि आपके जेएस पृष्ठ पर भी लोड होने से पहले STOP हो सकता है। –