最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

防止動(dòng)態(tài)加載JavaScript引起的內(nèi)存泄漏問(wèn)題

 更新時(shí)間:2009年10月08日 18:06:32   作者:  
利用Script標(biāo)簽可以跨域加載并運(yùn)行一段JavaScript腳本, 但Neil Fraser先前已指出,腳本運(yùn)行后資源并沒(méi)被釋放,即使是Script標(biāo)簽移除后。
為了釋放腳本資源,通常在返回后還要一些進(jìn)行額外的處理。
復(fù)制代碼 代碼如下:

script = document.createElement('script');
script.src =
'http://example.com/cgi-bin/jsonp?q=What+is+the+meaning+of+life%3F';
script.id = 'JSONP';
script.type = 'text/javascript';
script.charset = 'utf-8';
// 標(biāo)簽加到head后,會(huì)自動(dòng)加載并運(yùn)行。
var head = document.getElementsByTagName('head')[0];
head.appendChild(script)

實(shí)際上很多流行的JS庫(kù)都采用這種方式,創(chuàng)建一個(gè)scritp標(biāo)簽,賦予一個(gè)ID后加載腳本(比如YUI get()),加載完并回調(diào)后清除該標(biāo)簽。問(wèn)題在于當(dāng)你清除這些script標(biāo)簽的時(shí)候,瀏覽器僅僅是移除該標(biāo)簽結(jié)點(diǎn)。
復(fù)制代碼 代碼如下:

var script = document.getElementById('JSONP');
script.parentNode.removeChild(script);

當(dāng)瀏覽器移除這標(biāo)簽結(jié)點(diǎn)后的同時(shí)并沒(méi)對(duì)結(jié)點(diǎn)內(nèi)JavaScript資源的進(jìn)行垃圾回收,這意味著移除標(biāo)簽結(jié)點(diǎn)還不夠,還得手動(dòng)的清除script標(biāo)簽結(jié)點(diǎn)的內(nèi)容:
復(fù)制代碼 代碼如下:

// Remove any old script tags.
var script;
while (script = document.getElementById('JSONP')) {
script.parentNode.removeChild(script);
// 瀏覽器不會(huì)回收這些屬性所指向的對(duì)象.
//手動(dòng)刪除它以免內(nèi)存泄漏.
for (var prop in script) {
delete script[prop];
}
}

相關(guān)文章

  • 解決echarts官網(wǎng)打不開(kāi)訪問(wèn)失敗的問(wèn)題

    解決echarts官網(wǎng)打不開(kāi)訪問(wèn)失敗的問(wèn)題

    這篇文章主要介紹了解決echarts官網(wǎng)打不開(kāi)訪問(wèn)失敗的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • JavaScript中字符串(string)轉(zhuǎn)json的2種方法

    JavaScript中字符串(string)轉(zhuǎn)json的2種方法

    這篇文章主要介紹了JavaScript中字符串(string)轉(zhuǎn)json的2種方法,兩種方法分別是使用js函數(shù)eval()和、使用jquery.parseJSON()方法,需要的朋友可以參考下
    2015-06-06
  • js 倒計(jì)時(shí)(高效率服務(wù)器時(shí)間同步)

    js 倒計(jì)時(shí)(高效率服務(wù)器時(shí)間同步)

    首先說(shuō)一下,為什么要服務(wù)器時(shí)間同步, 因?yàn)榉?wù)器時(shí)間和本地電腦時(shí)間存在一定的時(shí)間差。有些對(duì)時(shí)效性要求非常高的應(yīng)用,例如時(shí)時(shí)彩開(kāi)獎(jiǎng),是不能容忍這種時(shí)間差存在的
    2017-09-09
  • 100個(gè)不能錯(cuò)過(guò)的實(shí)用JS自定義函數(shù)

    100個(gè)不能錯(cuò)過(guò)的實(shí)用JS自定義函數(shù)

    本文收集了100個(gè)原生態(tài)JavaScript編寫的常用、實(shí)用自定義函數(shù),需要的朋友可以參考下
    2014-03-03
  • JavaScript中的高級(jí)特性分享

    JavaScript中的高級(jí)特性分享

    JavaScript是一種功能強(qiáng)大的編程語(yǔ)言,具有許多高級(jí)特性,本文將介紹JavaScript中的一些高級(jí)特性,包括閉包、原型繼承、高階函數(shù)、異步編程和模塊化,希望對(duì)大家有所幫助
    2023-06-06
  • JavaScript實(shí)現(xiàn)大文件分片上傳處理

    JavaScript實(shí)現(xiàn)大文件分片上傳處理

    這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)大文件分片上傳處理,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • JavaScript數(shù)組的隨機(jī)排序方法詳解

    JavaScript數(shù)組的隨機(jī)排序方法詳解

    在前端開(kāi)發(fā)中,我們經(jīng)常需要對(duì)數(shù)組進(jìn)行隨機(jī)排序,例如在游戲、抽獎(jiǎng)、數(shù)據(jù)隨機(jī)展示等場(chǎng)景中,JavaScript 提供了多種方式來(lái)實(shí)現(xiàn)數(shù)組的隨機(jī)排序,本文將詳細(xì)介紹不同的方法,并分析它們的優(yōu)缺點(diǎn),幫助開(kāi)發(fā)者在不同場(chǎng)景下選擇合適的解決方案,需要的朋友可以參考下
    2025-03-03
  • JS實(shí)現(xiàn)自動(dòng)變化的導(dǎo)航菜單效果代碼

    JS實(shí)現(xiàn)自動(dòng)變化的導(dǎo)航菜單效果代碼

    這篇文章主要介紹了JS實(shí)現(xiàn)自動(dòng)變化的導(dǎo)航菜單效果代碼,涉及JavaScript基于定時(shí)函數(shù)觸發(fā)頁(yè)面元素屬性動(dòng)態(tài)變換的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-09-09
  • js實(shí)現(xiàn)特別簡(jiǎn)單的鐘表效果

    js實(shí)現(xiàn)特別簡(jiǎn)單的鐘表效果

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)特別簡(jiǎn)單的鐘表效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • 詳解javascript中的Error對(duì)象

    詳解javascript中的Error對(duì)象

    error是指程序中的非正常運(yùn)行狀態(tài),在其他編程語(yǔ)言中稱為“異?!被颉板e(cuò)誤”,解釋器會(huì)為每個(gè)錯(cuò)誤情形創(chuàng)建并拋出一個(gè)Error對(duì)象,其中包含錯(cuò)誤的描述信息,這篇文章主要介紹了javascript中的Error對(duì)象,需要的朋友可以參考下
    2019-04-04

最新評(píng)論

章丘市| 宣化县| 鄂州市| 察隅县| 正定县| 青阳县| 房产| 鄂州市| 饶河县| 米易县| 吴堡县| 衢州市| 栾川县| 泉州市| 西宁市| 枣庄市| 彩票| 会东县| 泰兴市| 禹州市| 武宁县| 宁国市| 彭山县| 祁东县| 垫江县| 广汉市| 河东区| 伊吾县| 巫山县| 望都县| 大姚县| 闽侯县| 云梦县| 昌宁县| 珠海市| 临城县| 上思县| 鄂尔多斯市| 阳泉市| 纳雍县| 德惠市|