gpt4 book ai didi

javascript - 在我的例子中如何仅发送一次 AJAX 调用

转载 作者:行者123 更新时间:2023-11-28 17:59:36 25 4
gpt4 key购买 nike

我对如何编写这个逻辑感到困惑。我要寻找的是视频何时播放,并且如果视频观看百分比超过 2%,我想发送一次 AJAX 请求。但实际发生的情况是它会持续从2% 到 100%

触发

如果我写=(等于)而不是>(大于),它不会触发,因为我没有对数字进行四舍五入,所以由于小数,它不会触发。那么在这种情况下我该如何编写这个逻辑呢?AJAX 请求只能发送一次。

var j = 0;
$("#video").bind("timeupdate", function() {
var currentTime = this.currentTime;
var totalPlayed = 0;
var played = video.played;
for (var i = 0; i < played.length; i++) {
totalPlayed += played.end(i) - played.start(i);
var playedInPercentage = (totalPlayed/totalTime)*100;
}
/*here i want to write a logic to send this lowered only once.*/
if (totalPlayed > 0.02*(totalTime)) { //watched 2% and above then this will excute 0.02(2%)
alert("asdsad");
if(j < 1) {
/* Ajax call video watched starts here it should trigger only once*/
$.ajax({
url: "student_learning_controller.php",
method: "POST",
data: {'action': 'videoWatched', 'course_id': course_id,'videoId' : videoId,'totalVideoTime':totalTime,'totalPlayedTime':totalPlayed,'percentagePlayed':playedInPercentage },
dataType: "json",

success: function (response) {
if (response["success"] == true) {
$("#success_message").html(response["message"]);

}
},
error: function (request, status, error) {
$("#warning_message").show();
$("#warning_message").html("OOPS! Something Went Wrong Please Try After Sometime!");
}
});
/* Ajax call video watched ends here */
}
j += 1; //Reset for duplicates (repeated playback)
}
});

最佳答案

您可以在“if”之前使用var returned = 0;

然后“if”变为: if(totalPlayed > 0.02*(totalTime) && !triggered ){triggered = 1;

这只会执行一次,因为当您输入“if”时,您将更新“triggered”变量,并且不会再次输入“if”。

关于javascript - 在我的例子中如何仅发送一次 AJAX 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43774951/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com