国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

防止動態加載JavaScript引起的內存泄漏問題

2019-11-21 01:06:02
字體:
來源:轉載
供稿:網友
為了釋放腳本資源,通常在返回后還要一些進行額外的處理。
復制代碼 代碼如下:

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';
// 標簽加到head后,會自動加載并運行。
var head = document.getElementsByTagName('head')[0];
head.appendChild(script)

實際上很多流行的JS庫都采用這種方式,創建一個scritp標簽,賦予一個ID后加載腳本(比如YUI get()),加載完并回調后清除該標簽。問題在于當你清除這些script標簽的時候,瀏覽器僅僅是移除該標簽結點。
復制代碼 代碼如下:

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

當瀏覽器移除這標簽結點后的同時并沒對結點內JavaScript資源的進行垃圾回收,這意味著移除標簽結點還不夠,還得手動的清除script標簽結點的內容:
復制代碼 代碼如下:

// Remove any old script tags.
var script;
while (script = document.getElementById('JSONP')) {
script.parentNode.removeChild(script);
// 瀏覽器不會回收這些屬性所指向的對象.
//手動刪除它以免內存泄漏.
for (var prop in script) {
delete script[prop];
}
}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 九龙坡区| 张掖市| 六盘水市| 讷河市| 比如县| 通化市| 石首市| 稷山县| 穆棱市| 中方县| 濮阳市| 安陆市| 区。| 宝鸡市| 亚东县| 鹤庆县| 扎兰屯市| 香港 | 越西县| 阿鲁科尔沁旗| 邓州市| 会东县| 溧水县| 仁化县| 眉山市| 阿勒泰市| 开原市| 容城县| 门源| 镇沅| 大宁县| 墨玉县| 江安县| 兴国县| 孟津县| 青岛市| 宜良县| 文山县| 丰顺县| 洛南县| 德兴市|