js内存释放
发布网友
发布时间:2022-04-22 01:26
我来回答
共2个回答
热心网友
时间:2022-04-22 16:55
内存泄露?由js代码引起的浏览器崩溃?
个人觉得靠删除节点或内容没什么用,因为一段js代码加载后不过是一段文本,它的开销在加载过程中可能会比较大,但是一旦加载,那就已经是驻留在浏览器端的本地了,这段文本不运行的时候占不了多少空间吧。而且方法一旦运行完那也结束了方法的生命周期,在下次调用前,也不过是一段文本。
反而如果你的代码结构不合理,比如频繁的用分支、嵌套循环反而会造成内存消耗过大。所以建议还是从代码优化着手:
比如,可以把一些比较耗时的逻辑运算放在后台(服务器)运行,而页面只作相应的布局、展示操作。并且前端、后台通过ajax交互。
另外,像你所说的删除js节点,不知道以下方式可不可行:
1.将script节点的src重定向,定向到一个空白的js文件,这样相当于被空杯文件覆盖了;
2.上面那个重定向的方法我也不知道存不存在,不过如果你的js文件可以扔进一个iframe里的话,那就没问题了,重定向iframe肯定是可以的;
最后,祝你好运!
热心网友
时间:2022-04-22 18:13
递归删除每一个节点,
删除方式如下
parent.removeChild(e);
e=null;//这个好像得这样写。
delete e;
删除完后
if(CollectGarbage)CollectGarbage(); //这是个内置释放内存的函数,好像只能释放e=null并且delete e;的这些对象占用的内存。 具体不记得了。可以查查。