Вот мой код:сделать Ajax запрос только один раз внутри функции ONTIME jwplayer
jwplayer("mySingleVideoWrapper").onTime(function (event) {
jQuery("#getCurrentPositionOfVideo").val(event.position);
var videoLength = jwplayer('mySingleVideoWrapper').getDuration();
jQuery("#getWholeDuration").val(videoLength);
var totalSec = videoLength;
var finalNumber = (totalSec*30)/100;
if (event.position > finalNumber) {
jQuery("#watchedElapsedCount").val('1');
var videoViewsCount = jQuery("#watchedElapsedCount").val();
var currentPostId = jQuery("#currentPostId").val();
var json = '{"videoViewsCount" : "'+ videoViewsCount +'", "currentPostId" : "'+ currentPostId +'"}';
var getSiteBaseUrl = jQuery('#getSiteBaseUrl').val();
var ajaxurl = getSiteBaseUrl+"/wp-admin/admin-ajax.php";
jQuery.ajax({
url: ajaxurl,
type:"POST",
dataType: "json",
data:{
action: "elapsedDurationPercentage",
data: json
},
success:function(data){
}
});
}
});
Я использую WordPress и JW Player 7 Версия JavaScript и для обнаружения просмотров видео (если пользователь просмотрит по крайней мере 30% video) Я вызываю ajax и в действии elapsedDurationPercentage Я добавляю настраиваемое поле с соответствующим значением и обновлением в следующий раз.
Теперь внутри функции onTime() мой запрос ajax вызывает много раз позицию события. Как я могу назвать ajax только один раз внутри этой функции?
Я не совсем понимаю. Однако, как только пользователь достиг 30% видео. Сделайте функцию исполнением только один раз с помощью некоторой переменной флага. Мое предположение состояло бы в том, что функция будет выполняться несколько раз, как только после достижения 30%. – divakar
Можете ли вы показать мне пример использования переменной флага? @divakar – aidadev
Это может быть что угодно. просто объявите переменную типа var a = 0; – divakar