मुझे लगता है कि setInterval
का इस्तेमाल करते हैं JavaScript लाइब्रेरी के एक जोड़े में देखा है, कि पुस्तकालय, window
के unload
घटना के लिए एक घटना श्रोता बाध्य होगा ताकि सभी बनाया अंतराल clearInterval
का उपयोग कर खाली करने के लिए।विंडो अनलोड से पहले अंतराल को साफ़ करने का कारण?
एक उदाहरण History.js है जो "List of intervals set, to be cleared when document is unloaded" रखता है।
स्निपेट:
// ====================================================================
// Interval record
/**
* History.intervalList
* List of intervals set, to be cleared when document is unloaded.
*/
History.intervalList = [];
/**
* History.clearAllIntervals
* Clears all setInterval instances.
*/
History.clearAllIntervals = function(){
var i, il = History.intervalList;
if (typeof il !== "undefined" && il !== null) {
for (i = 0; i < il.length; i++) {
clearInterval(il[i]);
}
History.intervalList = null;
}
};
घटना श्रोता unload
घटना पर इस समारोह here जोड़ा जाता है कहता है कि।
स्निपेट:
/**
* Clear Intervals on exit to prevent memory leaks
*/
History.Adapter.bind(window,"unload",History.clearAllIntervals);
तो, मेरे सवाल, क्यों कुछ जावास्क्रिप्ट लेखकों ऐसा करते हैं है? ऐसा लगता है जैसे ब्राउज़र पृष्ठ को छोड़ते समय इन अंतराल को स्वचालित रूप से साफ़ कर दिया जाएगा (मैंने इसे अन्यथा कभी नहीं देखा है)। क्या ऐसा करने का कोई फायदा है? क्या यह किसी प्रकार की ब्राउज़र बग की क्षतिपूर्ति करता है? यदि हां, तो कौन सा बग और कौन से ब्राउज़र प्रभावित करते हैं?
दिलचस्प सवाल अगर ऐसा करने का एक वैध कारण है। मैं हालांकि एक नहीं देखता हूं। – Jonathan
https://github.com/browserstate/history.js/commit/91a5c5bcd63cb5fc35e786de3a11218ea69e65bc – zerkms
इतिहास.जेएस के लेखकों से संपर्क क्यों न करें, उनके ईमेल https://github.com/browserstate/history.js के नीचे हैं (हालांकि उपर्युक्त टिप्पणी ऐसा लगता है कि इसे Env.js पर किसी प्रकार की निर्भरता के साथ करना है) –