Jquery 对“执行操作”;“时间更新”;经过一定的时间间隔

Jquery 对“执行操作”;“时间更新”;经过一定的时间间隔,jquery,html5-video,Jquery,Html5 Video,我正在使用html5视频,并试图存储用户观看视频的时间量,以便从关闭的位置继续观看视频。 为此,我尝试每5秒更新一次数据库。在观看视频时,我这样做是为了每5秒获取当前时间: $(document).ready(function() { $("video#eclassvideo").on( "timeupdate", function(e){ performaction(this.currentTime, this.duration); }

我正在使用html5视频,并试图存储用户观看视频的时间量,以便从关闭的位置继续观看视频。 为此,我尝试每5秒更新一次数据库。在观看视频时,我这样做是为了每5秒获取当前时间:

$(document).ready(function()
{
  $("video#eclassvideo").on(
    "timeupdate",
      function(e){
             performaction(this.currentTime, this.duration);
    });


function performaction(currentTime, duration){
    setTimeout(function(){
        console.log(currentTime);
        console.log(' ajax action goes here')
    },5000)
}
但这只适用于它第一次抓取之后,它再次继续提供每秒2-3次的时间。我尝试在事件触发期间使用settimeout函数,但结果相同。请帮助我如何每5秒只获取一次视频的当前时间

提前谢谢

视频播放时,
时间更新事件每15-250毫秒触发一次,因此您的代码每秒设置多个超时。如果我理解你的意思,你只希望代码每5秒运行一次,对吗?您最好在视频开始和停止时设置和删除间隔

$(函数(){
变量超时
$(“#eclassvideo”)。打开(“播放暂停”,函数(e){
//保存引用
var v=这个
//清除以前的超时(如果有)
clearTimeout(超时)
//暂停或启动时立即呼叫
性能(v.currentTime,v.duration)
//设置每5秒开火的间隔
如果(例如,类型==“播放”){
超时=设置间隔(函数(){
性能(v.currentTime,v.duration)
}, 5000)
}
})
功能执行(当前时间、持续时间){
console.log(当前时间)
log('ajax操作在这里')
}
})

视频播放时,
时间更新事件每15-250毫秒触发一次,因此您的代码每秒设置多个超时。如果我理解你的意思,你只希望代码每5秒运行一次,对吗?您最好在视频开始和停止时设置和删除间隔

$(函数(){
变量超时
$(“#eclassvideo”)。打开(“播放暂停”,函数(e){
//保存引用
var v=这个
//清除以前的超时(如果有)
clearTimeout(超时)
//暂停或启动时立即呼叫
性能(v.currentTime,v.duration)
//设置每5秒开火的间隔
如果(例如,类型==“播放”){
超时=设置间隔(函数(){
性能(v.currentTime,v.duration)
}, 5000)
}
})
功能执行(当前时间、持续时间){
console.log(当前时间)
log('ajax操作在这里')
}
})

这解决了我的问题。谢谢

 $(document).ready(function(){
var player;     
var video='';
        $('#eclassvideo').bind('play',function(){
               video=document.getElementById('#eclassvideo');  
               var videotime=setInterval(function() {
               if(typeof($('#eclassvideo')[0])=='undefined'){
                        window.clearInterval( videotime); 
                        return false;
                }
                var curtime = $('#eclassvideo')[0].currentTime;
                 var duration = $('#eclassvideo')[0].duration;
                saveprogressvideo(curtime,duration);
                 }, 5000);   
               $('#eclassvideo').bind('ended',function(){
                        window.clearInterval(videotime);
                });
        });
 })

function saveprogressvideo(currenttime,duration)
{
    var timevideo=$('#eclassvideo').attr('timevideo');
    var data=$('.videocontent').data();     
    data.videolength=duration.toFixed(2);
    if(timevideo<currenttime)
    {
        $.ajax({
            url:'student_progress/learn_course/savevideotime',
            data:data,
            type:'post',
            dataType:'json',
            success:function(msg){
                $('.vidmsg').html(msg);
            }
        })
    } 
}
$(文档).ready(函数(){
var播放器;
var视频=“”;
$('#eclassvideo').bind('play',function(){
video=document.getElementById('#eclassvideo');
var videotime=setInterval(函数(){
if(typeof($('eclassvideo')[0])=='undefined'){
窗口时间间隔(视频时间);
返回false;
}
var curtime=$('#eclassvideo')[0].currentTime;
var duration=$('#eclassvideo')[0]。duration;
saveprogressvideo(缩短时间、持续时间);
}, 5000);   
$('#eclassvideo').bind('end',function(){
窗口时间间隔(视频时间);
});
});
})
功能saveprogressvideo(当前时间、持续时间)
{
var timevideo=$('eclassvideo').attr('timevideo');
var data=$('.videocontent').data();
data.videolength=持续时间.toFixed(2);

如果(timevideo这解决了我的问题。谢谢

 $(document).ready(function(){
var player;     
var video='';
        $('#eclassvideo').bind('play',function(){
               video=document.getElementById('#eclassvideo');  
               var videotime=setInterval(function() {
               if(typeof($('#eclassvideo')[0])=='undefined'){
                        window.clearInterval( videotime); 
                        return false;
                }
                var curtime = $('#eclassvideo')[0].currentTime;
                 var duration = $('#eclassvideo')[0].duration;
                saveprogressvideo(curtime,duration);
                 }, 5000);   
               $('#eclassvideo').bind('ended',function(){
                        window.clearInterval(videotime);
                });
        });
 })

function saveprogressvideo(currenttime,duration)
{
    var timevideo=$('#eclassvideo').attr('timevideo');
    var data=$('.videocontent').data();     
    data.videolength=duration.toFixed(2);
    if(timevideo<currenttime)
    {
        $.ajax({
            url:'student_progress/learn_course/savevideotime',
            data:data,
            type:'post',
            dataType:'json',
            success:function(msg){
                $('.vidmsg').html(msg);
            }
        })
    } 
}
$(文档).ready(函数(){
var播放器;
var视频=“”;
$('#eclassvideo').bind('play',function(){
video=document.getElementById('#eclassvideo');
var videotime=setInterval(函数(){
if(typeof($('eclassvideo')[0])=='undefined'){
窗口时间间隔(视频时间);
返回false;
}
var curtime=$('#eclassvideo')[0].currentTime;
var duration=$('#eclassvideo')[0]。duration;
saveprogressvideo(缩短时间、持续时间);
}, 5000);   
$('#eclassvideo').bind('end',function(){
窗口时间间隔(视频时间);
});
});
})
功能saveprogressvideo(当前时间、持续时间)
{
var timevideo=$('eclassvideo').attr('timevideo');
var data=$('.videocontent').data();
data.videolength=持续时间.toFixed(2);
如果(时间视频)