如果我多次调用此函数,它是否会泄漏内存?
有一件事让我怀疑:在这里我分配给实例播放器。玩家有听众 - 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。但测试没多久。
我想知道那些听众是以某种方式清理过的,以及浏览器如何知道他们不再使用了?
更新