【发布时间】:2019-11-15 04:20:47
【问题描述】:
我每 60 秒通过 ajax get 检索一个随机用户。此外,我想触发一个计时器,指示用户何时显示下一个“随机用户”。
我尝试创建两个单独的函数,一个用于 ajax get,另一个用于计时器。这些函数在 setinterval 函数中调用。但是,这不能正常工作。
<script type="text/javascript">
window.onload = function random_user() {
/*ajax request*/
$.ajax({
type: "get",
url: "random_user.php",
async: "false",
success: function (data) {
$('#random_user').html(data);
console.log(data)
}
});
/*Countdown script*/
function countdown() {
var counter = 60;
var interval = setInterval(function () {
counter--;
if (counter <= 0) {
clearInterval(interval);
return;
}else{
$('#time').text(counter);
console.log("Timer --> " + counter);
}
}, 1000);
}
/*Final function call*/
setInterval(function () {
random_user();
countdown();
}, 60000); //60000 milliseconds = 60 seconds
}
</script>
<ul class="accordion">
<li>
<a>1 user - <span id="time">60</span> sec</a>
<div class="dropdown">
<div id="random_user"></div>
</div>
</li>
</ul>
非常感谢任何帮助,因为我对 php 和 javascript 比较陌生。 最好的问候
【问题讨论】:
-
“不能正常工作” -> 你能解释一下吗,因为这里真的很模糊。
-
抱歉,定时器不是从一开始就触发的。在倒计时开始工作之前,我必须等待 60 秒......此外,随着时间的推移,不同的倒计时重叠 + ajax 停止获取数据。
标签: javascript php ajax setinterval countdown