您好,登錄后才能下訂單哦!
JavaScript中引發(fā)內(nèi)存泄漏的情況有哪些?針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。
1.JavaScript主要用來向HTML頁面添加交互行為。 2.JavaScript可以直接嵌入到HTML頁面,但寫成單獨(dú)的js文件有利于結(jié)構(gòu)和行為的分離。 3.JavaScript具有跨平臺(tái)特性,在絕大多數(shù)瀏覽器的支持下,可以在多種平臺(tái)下運(yùn)行。
1、意外的全局變量
function foo(arg) { bar = "this is a hidden global variable"; }
bar沒被聲明,會(huì)變成一個(gè)全局變量,在頁面關(guān)閉之前不會(huì)被釋放。
2、忽略的計(jì)時(shí)器或回調(diào)函數(shù)
var someResource = getData(); setInterval(function() { var node = document.getElementById('Node'); if(node) { // 處理 node 和 someResource node.innerHTML = JSON.stringify(someResource)); } }, 1000);
3、閉包
閉包可以維持函數(shù)內(nèi)局部變量,使其得不到釋放。解決方法為將事件處理函數(shù)定義為外部,解除封閉包,或者在定義事件處理函數(shù)的外部函數(shù)中,刪除對(duì)dom的引用。
function bindEvent(){ var obj=document.createElement('xxx') obj.onclick=function(){ // Even if it is a empty function } }
關(guān)于JavaScript中引發(fā)內(nèi)存泄漏的情況有哪些問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。