Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过视频源循环会降低Chrome的速度_Javascript_Jquery_Ajax_Html_Google Chrome - Fatal编程技术网

Javascript 通过视频源循环会降低Chrome的速度

Javascript 通过视频源循环会降低Chrome的速度,javascript,jquery,ajax,html,google-chrome,Javascript,Jquery,Ajax,Html,Google Chrome,我有两个视频源,通过ajax输出到我的页面(第二个是隐藏的)。我播放第一个视频,并将一个事件绑定到它上,以便在它结束时播放和显示下一个视频,同时暂停第一个视频,并将其倒回0,然后该过程继续 这是我的密码 function queueVideos(num, amount) { if (num < amount) { document.getElementById('video-element-'+num).addEventListener('ended', play

我有两个视频源,通过ajax输出到我的页面(第二个是隐藏的)。我播放第一个视频,并将一个事件绑定到它上,以便在它结束时播放和显示下一个视频,同时暂停第一个视频,并将其倒回0,然后该过程继续

这是我的密码

function queueVideos(num, amount) {

    if (num < amount) {
        document.getElementById('video-element-'+num).addEventListener('ended', playNextClip, false);
        function playNextClip() {
            var nextVid = num + 1;
            $( '#video-element-' + nextVid ).show().get(0).play();
            $( '#video-element-' + num ).hide();
            document.getElementById( 'video-element-' + num ).pause();
            document.getElementById( 'video-element-' + num ).currentTime = 0;
            queueVideos(nextVid, amount)
        }
    }

    if (num == amount) {
        document.getElementById('video-element-'+num).addEventListener('ended', playFirst, false);
        function playFirst() {
            $( '#video-element-1' ).show().get(0).play();
            $( '#video-element-' + num ).hide();
            document.getElementById( 'video-element-' + num ).pause();
            document.getElementById( 'video-element-' + num ).currentTime = 0;
            queueVideos(1, amount);
        }
    }

}
我的问题是,大约1分钟后,剪辑之间的过渡变得滞后,剪辑意外暂停,最终浏览器(chrome)执行缓慢

我怎样才能解决这个问题


谢谢

我发现将函数playFirst()更改为不包含queueVideos(1,amount);解决了这个问题!我没有意识到我只需要添加一次事件侦听器。呜呼

该函数将无限次调用,因此会使浏览器崩溃。您需要使用
setInterval
setTimeout
queueVideos(1, 2);