删除脚本元素是否从内存中删除其功能?

时间:2012-01-31 16:05:38

标签: javascript removechild

var scripts  = document.getElementsByTagName("script");
for (var i=scripts.length; i--; ){
   (scripts[i]).parentNode.removeChild(scripts[i]);
}

有人问我这个问题,我的第一个想法是:不。但是,当您删除style元素时,页面会自动更新,删除样式。这可能是因为浏览器挂钩css的方式 - 我想我记得CSS更新了每个事件(鼠标移动,点击,类型等)。

我只是想确认,摆脱脚本标签,不会摆脱已经创建的功能,因为我不在我可以测试的计算机上。

这也让我想到了帮助保护代码免受firebug [-like]用户

的良好做法

1 个答案:

答案 0 :(得分:8)

简短回答,不。

任何由引擎评估过一次的脚本都会在剩余的会话中保留在内存中。即使删除包含代码的整个脚本节点也不会改变这一事实。