Я пытаюсь отправить текущие значения времени, продолжительности и currentPrecentAbsolute на страницу php, которая захватывает эти переменные и сохраняет их в базе данных с помощью ajax. Я отлично работаю над событием паузы, однако, когда я пытаюсь использовать timeupdate, я получаю несколько вызовов.jplayer ajax running mulitple times with timeupdate
Я хочу, чтобы иметь возможность автоматически отправлять данные, когда currentPercentAbsolute достигает 25%, 50% и 75%. Я знаю, в чем проблема, я просто не знаю, как ее решить. Скорость Timeupdate варьируется в разных браузерах, я полагаю, что значение по умолчанию составляет около 250 мс. Поэтому, пока мой процент составляет 25%, 50% и 75%, аякс будет продолжать работать. Примерно 4 раза (4 * 250 мс в секунду). И, конечно же, только в том случае, если видео длится примерно 100 секунд. Если это длится 200 секунд, currentPercentAbsolute будет оставаться в этих процентах на целую секунду дольше, запустив мой ajax 8 раз.
Итак, в конечном счете, мой вопрос: какой лучший способ сделать то, что я пытаюсь сделать. На боковой ноте я также хотел бы реализовать
$(window).unload(function(){my ajax call in here});
, чтобы иметь возможность получить такую же статистику, если пользователь закрывает окно, не заканчивая видео. Я работал, но столкнулся с той же проблемой. Он работает на каждой итерации времени. Всем приветствуется всяческая помощь.
Мой код для timeupdate
timeupdate: function (event) {
var totaltime = Math.floor(event.jPlayer.status.duration);
var currenttime = Math.floor(event.jPlayer.status.currentTime);
var percent = Math.floor(event.jPlayer.status.currentPercentAbsolute);
if(percent == '25'){
$('#timeNow').html(currenttime);
$('#percentNow').html(percent);
$.ajax({
type: 'POST',
url: 'teststats.php',
data : {timeWatched : currenttime, percentWatched : percent, totalTime : totaltime},
success : function(data) { }
});
}
if(percent == '50'){
$('#timeNow').html(currenttime);
$('#percentNow').html(percent);
$.ajax({
type: 'POST',
url: 'teststats.php',
data : {timeWatched : currenttime, percentWatched : percent, totalTime : totaltime},
success : function(data) { }
});
}
if(percent == '75'){
$('#timeNow').html(currenttime);
$('#percentNow').html(percent);
$.ajax({
type: 'POST',
url: 'teststats.php',
data : {
timeWatched : currenttime, percentWatched : percent, totalTime : totaltime},
success : function(data) { }
});
}
},