var i = 3400;
function progress() {
i = 34000;
window.setInterval(function () {
i = i - 100;
document.getElementById("progress").firstChild.data = i;
}, 100);
}
此代码越来越快。函数进度每隔3秒调用一次,但我无法更改它的调用,因为它是基于事件的。大约10次通话后,我变得消极!
答案 0 :(得分:3)
...嗯
请勿使用setInterval
您可能想要使用setTimeout
答案 1 :(得分:1)
由于每3秒调用一次进度,因此需要避免重复创建新的间隔。使用clearTimeout
可在您调用进度时随时重置计时器。但是,在不知道您想要实现什么的情况下,很难提供准确的答案。
var timeout;
function counter(count) {
document.getElementById("progress").firstChild.data = count;
if (count >= 0) {
timeout = window.setTimeout(function() {
counter(count-100);
}, 100);
}
}
function progress() {
window.clearTimeout(timeout);
counter(3400);
}
答案 2 :(得分:0)
试试这个
var i = 3400;
function progress() {
i = i - 100;
document.getElementById("progress").firstChild.data = i;
window.setTimeout('progress();', 100);
}