在onTime函数jwplayer中只执行一次ajax请求



这是我的代码:

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%的视频时),我调用ajax,在"elapsedDurationPercentage"操作中,我添加具有相应值的自定义字段,并在下次更新。

现在在onTime()函数中,我的ajax请求多次调用re-event位置。如何在这个函数中只调用ajax一次?

var flag = 0;
    jwplayer("mySingleVideoWrapper").onTime(function (event) {
        if(flag == 0){
            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";
                if(jQuery("#watchedElapsedCount").val() == '1'){
                    flag = 1;
                    var xhr = jQuery.ajax({               
                        url: ajaxurl,               
                        type:"POST",                
                        dataType: "json",
                        data:{
                            action: "elapsedDurationPercentage",                    
                            data: json              
                        },
                        success:function(data){  
                            flag = 1;
                            return flag;
                        }
                    }); 
                }
            }  
    }
});

最新更新