javascript - 我的代码应该泄漏内存吗?

时间:2014-07-03 11:34:41

标签: javascript memory-leaks jwplayer

如果我多次调用此函数,它是否会泄漏内存?

有一件事让我怀疑:在这里我分配给实例播放器。玩家有听众 - onPlay和其他人。因此,当我运行playJW函数时,它会完成所有操作。所以那些听众在>函数执行结束后工作。我知道它们在函数执行后工作,因为视频文件运行的时间远远超过函数执行的时间。

所以,如果我多次调用这个函数 - 那些听众会有很多副本或它是如何工作的?

this.playJW = function(vid) {

    $('#jwplayer').show();

    // this was file name with .avi , we need only beggining
    vid = vid.split('.');

    var folder = /dogs6_4mb/;       
    if(this._isMobile()) {          
        folder = '/dogs6_2mb/';
    }

    var player = jwplayer('jwplayer').setup({
        file: video_files_url + folder + vid[0] + '.mp4',
        height: '100%',     
        width: '100%',
        controls: true,
        autostart: true    
    });

    this.isPlaying = false;

    player.onPlay(function() {
        player.setControls(false);
        // to make not pause on display click
        self.isPlaying = true;          
    });

    player.onDisplayClick(function() {
        if (!isPlaying) {
            player.play();              
            self.isPlaying = true;              
        }
    });

    player.onComplete(function() {
        $('#jwplayer').hide();
    });     
};

我尝试使用开发人员工具检查内存使用情况 - 第一次看起来它增加了一点,直到11 MB,然后我刷新页面并禁用了chrome插件。现在网页运行不超过12.4 MB。但测试没多久。

我想知道那些听众是以某种方式清理过的,以及浏览器如何知道他们不再使用了?

更新

http://jsfiddle.net/e9dRt/3/

0 个答案:

没有答案