javaScript 内存泄露

news/2024/7/3 10:18:49

什么是内存泄露

只要程序提出要求 ,运行时就需要提供内存  

如果是持续性的服务进程,如果不及时释放不需要的内存,就会影响系统新能,甚至直接会崩溃。

不及时释放的内存 就叫内存泄露

什么情况下会引起?

1、意外的全局变量 

  •     比如:创建变量的时候忘记用let或者var定义,那么会被识别为window.variable,变成全局变量
  •    或者错误的通过this创建。比如function没有对象,因此this指向的是window。

2、子元素的引用,包括闭包

3、DOM清空删除,而事件没有清除

4、计时器用完没有清除

怎么防止

1、全局变量:在function前添加 “use stict” 进入严格模式,避免通过this错误创建全局变量。

2、dom事件+定时器+闭包:及时清除引用

3、使用weakset和weakmap.


http://www.niftyadmin.cn/n/3655774.html

相关文章

CSDN技术大会场记

1、和太阳一起出发2、远观大运村外景3、北京丽亭华苑酒店(CSDN技术大会场地)4、热闹的CSDN技术大会会场真正的CSDN英雄们 -- 名人堂,MVP,MVB这里面最早见过面的是孟宪会,是在我初次当选MVP在微软第一次聚会时认识的&am…

CSDN技术大会

其实在上周就收到了csdn相关人员的参会确认电话,今天早上查收邮件没有收到相关信息,没想到来了一个电话,提醒别忘了周五参会,她说补发邮件已不大可能,可以带名片过去,那边有名单可确认。也好,只…

JavaScript 作用域链

作用域链是什么 函数在使用一个变量的时候,会查找这个变量,如果自己内部没有,就会向上找,这个查找的过程就叫 作用域链 普通函数的作用域链 1、创建一个函数fn()时,会创建一个包含全局变量的作用域链,保存…

2007微软MVP获得连任

今天早上收到了这封邮件:“[MVP] 热烈祝贺!您已经获得 Microsoft MVP 奖励”,心情还是满不错的,在blog上留个纪念。----------------------------------------------------------------------------------------------尊敬的 Hong…

JavaScript 事件冒泡和事件捕获

什么是事件 JavaScript和HTML之间的交互是通过事件实现的。 事件:就是文档或浏览器窗口发生的一些特定的交互瞬间。 监听器(或事件处理程序):预定事件,以便事件发生时执行相应的代码。 通俗的说,这种模型其…

初涉龙芯I/龙芯II

最近想开发一款高性能的嵌入式多媒体系统,目前Arm9系列的嵌入式平台多媒体性能欠佳。最近龙芯在嵌入式方面投入了很大的精力(毕竟做通用PC,龙芯的性能还是远远不够,目前的性能不过相当于奔腾800),听我们老总…

javaScript 的 splice和slice,map和forEach、 filter()、reduce()的区别

map和forEach 参数:都是(当前值,当前对应的index,当前调用的array) 可以不写全 map 根据每个元素的转换,组成新数组原数组不变返回新数组注意一个笔试题:参考回调函数 ["1", &qu…

.net精简框架集下的ini文件读取(C#)

无论是.net框架集还是.net精简框架集都能非常完美的支持XML文件,并且微软也强烈建议用xml文件取代ini文件,但是在工控领域大部分的工程都是采用ini文件配置的系统信息的。以前的隧道管理系统是采用ini文件配置信息的,为了实现兼容&#xff0c…