autojs用函数封装,函数结束会彻底释放内存吗

JavaScript0107

autojs用函数封装,函数结束会彻底释放内存吗,第1张

autojs用函数封装,函数结束不会彻底释放内存。根据查询相关资料信息,不会彻底释放内存,使用内存清空函数,对内存进行清空,autojs是基于一个标准字典库的文本输入自动完成JavaScript库。Auto.js是使用纯JS实现的,没有任务外部依赖,大小仅仅6kb。

内存泄露?由js代码引起的浏览器崩溃?

个人觉得靠删除节点或内容没什么用,因为一段js代码加载后不过是一段文本,它的开销在加载过程中可能会比较大,但是一旦加载,那就已经是驻留在浏览器端的本地了,这段文本不运行的时候占不了多少空间吧。而且方法一旦运行完那也结束了方法的生命周期,在下次调用前,也不过是一段文本。

反而如果你的代码结构不合理,比如频繁的用分支、嵌套循环反而会造成内存消耗过大。所以建议还是从代码优化着手:

比如,可以把一些比较耗时的逻辑运算放在后台(服务器)运行,而页面只作相应的布局、展示操作。并且前端、后台通过ajax交互。

另外,像你所说的删除js节点,不知道以下方式可不可行:

1.将script节点的src重定向,定向到一个空白的js文件,这样相当于被空杯文件覆盖了;

2.上面那个重定向的方法我也不知道存不存在,不过如果你的js文件可以扔进一个iframe里的话,那就没问题了,重定向iframe肯定是可以的;

最后,祝你好运!

可以不用考虑清除内存的事情,因为javascript自带垃圾回收机制。

JavaScript语言是一门优秀的脚本语言。其中包含脚本语言的灵活性外还拥有许多高级语言的特性。例如充许构建和实例化一个对象,垃圾回收机制(GC:Garbage Collecation)。通常我们使用new创建对象,GC负责回收对象占用内存区域。因此了解GC,可以加深对javascript垃圾回收机制的理解。

GC在回收内存时,首先会判断该对象是否被其它对象引用。在确定没有其它对象引用便释放该对象内存区域。因此如何确定对象不再被引用是GC的关键所在。