我有一个简单的 javascript 函数,可以加载文档就绪:
var start = 1;
var speed = 1000;
$(document).ready(function () {
go();
setInterval(function () {
go();
}, speed);
这是函数的详细信息:
function go() {
$("#score").html(start.toLocaleString());
start += 1;
}
这基本上是一个从数字 1 开始到无穷大的计数器,速度为 1000 毫秒。事情是这样的:我有另一个功能:
function modify() {
speed = 500;
}
调节 main 函数的 setIntval
速度。问题是它仅适用于页面刷新。如何在不刷新页面的情况下实时更新?
最佳答案
你不能更新当前的,你必须停止它并设置一个新的计时器,它做同样的事情但有不同的延迟。
var speed = 1000;
var start = 1;
function go() {
$("#score").html(start.toLocaleString());
start += 1;
}
function startGoTimer(){
return = setInterval(function () {
go();
}, speed);
}
function modifyTimer( previousTimer, newDelay=500) {
clearInterval(previousTimer);
speed = newDelay;
startGoTimer();
}
var timer = startGoTimer();
// Some code
modifyTimer(timer, 500);
为了好玩,我只是测试了如果你只是改变时间会发生什么:
var timing = 1000;
var interval = setInterval(function(){console.log("test")}, timing);
// Now we get a log every 1000ms, change the var after some time (via console):
timing = 10;
// still an interval of 1000ms.
关于javascript - 更新javascript中的延迟函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50436399/