Javascript内存泄漏与优化

1. 什么是内存泄漏

内存泄漏是指在Javascript中,已经分配内存地址的对象由于长时间未释放或者是无法释放造成了长期占用内存,使内存浪费,最终导致运行的应用响应速度变慢以及最终崩溃的情况。

2. 内存泄漏场景

  • 过多的缓存未释放
  • 闭包太多未释放
  • 定时器或者回调太多未释放
  • 太多无效的DOM未释放
  • 全局变量太多未被发现

3. 优化

  • 减少不必要的全局变量,使用严格模式避免意外创建全局变量
function foo(){
    // 全局变量window.bar
    this.bar = '默认this指向全局变量'
    // 没有声明的变量实际上就是全局变量window.bar
    bar = '全局变量'
    
}
foo()
  • 在使用完数据后,及时解除引用
var someResource = getData();
setInterval(function(){
    var node = document.getElementById('Node')
    if(node){
        node.innerHTML = JSON.stringify(someResource())
        // 定时器未清除
    }
    // node,someResource存储了大量数据,无法回收
},1000)
  • 组织好代码逻辑,避免死循环造成卡顿
var leakArray = []
exports.clear = function(){
    leakArray = []
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值