美文网首页
内存泄漏

内存泄漏

作者: 嘤嘤嘤998 | 来源:发表于2019-02-12 11:49 被阅读0次

    JavaScript 的垃圾收集机制
    内存泄露可以定义为:应用程序不再需要占用内存的时候,由于某些原因,内存没有被操作系统或可用内存池回收。

    常见内存泄漏的原因

    虽然JavaScript 会自动垃圾收集,但是如果我们的代码写法不当,会让变量一直处于“进入环境”的状态,无法被回收。下面列一下内存泄露常见的几种情况。

    1. 全局变量引起的内存泄漏

    function leaks(){  
        leak = 'xxxxxx';  //leak 成为一个全局变量,不会被回收
    }
    

    2. 闭包引起的内存泄漏

    var leaks = (function(){  
        var leak = 'xxxxxx';// 被闭包所引用,不会被回收
        return function(){
            console.log(leak);
        }
    })()
    

    3. dom清空或删除时,事件未清除导致的内存泄漏

    <div id="container"></div>
    
    $('#container').bind('click', function(){
        console.log('click');
    }).remove();
    

    解决:

    <div id="container"></div>
    
    $('#container').bind('click', function(){
        console.log('click');
    }).off('click').remove();
    //把事件清除了,即可从内存中移除
    

    相关文章

      网友评论

          本文标题:内存泄漏

          本文链接:https://www.haomeiwen.com/subject/nliheqtx.html