"10个让你目瞪口呆的JavaScript内存泄露操作"
内存溢出是指应用系统中存在无法回收的内存或使用的内存过多,最终使得程序运行要用到的内存大于虚拟机能提供的最大内存。
js哪些操作会造成内存泄露?
意外的全局变量引起的内存泄露被遗忘的定时器或者回调:没有使用clearInterval()、clearTimeout()清理
闭包
事件
引用
脱离 DOM 的引用
回调函数
vue内存泄漏
vue是单页应用 (SPA),页面路由切换后,内存未释放。vue-router跳转到别的组件导致的内容泄漏
keep-alive将组件保存到了内存中,不会释放
通过原型连,将插件绑定在vue实例上,通过this全局引用
在钩子函数(如:mounted/created)中,绑定了DOM/BOM 对象中的事件、变量的初始化,内存不会释放。需要在beforeDestroy 中做对应销毁处理
如果在mounted/created 钩子中使用了$on,需要在beforeDestroy 中做对应解绑($off)处理
通过插件新建的对象,使用完之后一定要删除,释放内存
使用第三方库、插件引起的
使用其他的框架(如:jquery)创建元素、绑定事件,v-if的值变成false时,无法删除这些元素、事件
使用其他的框架(如:jquery)创建元素、绑定事件,v-if的值变成false时,无法删除这些元素、事件
1、v-if绑定到false的值,但是实际上dom元素在隐藏的时候没有被真实的释放掉
2、就是非常常见的比如我们通过v-if删除了父级元素,但是并没有移除父级元素里的dom片段。
版权声明:他人将便捷数据网提供的内容与服务用于商业、盈利、广告性目的时,需得注明出处,转载时请附上原文出处链接及本声明。
原文链接:https://www.bian-jie.cn/search/promotion_article/1/19391656.html