如果我可以尝试让每个人都明白我在寻找什么,我正在寻找改变间隔的价值,让我们说" 5000ms"在" 1000ms"然后它将继续下一个值,如" 2000ms"并重复一遍!我当前的代码几乎就是一个秒表,它每1000毫秒将一个段号添加到一个段落中。非常感谢任何帮助!
<script>
function myFunction() {
clicks += 1;
}
setInterval(myFunction, 1000);
var clicks = 0;
function myFunction() {
clicks += 1;
document.getElementById("demo").innerHTML = clicks;
// connects to paragraph id
}
</script>
<p id="demo"></p>
<!--connects to getElementById-->
&#13;
答案 0 :(得分:0)
不要使用setInterval
- 此功能将在您设置的任何给定时间间隔内执行操作。
请改用setTimeout
。在给定间隔后仅执行一次操作,然后使用不同的间隔值一次又一次地调用它。
答案 1 :(得分:0)
这个怎么样
nginx
答案 2 :(得分:0)
你应该尝试使用递归超时而不是间隔
var timeout = 1000;
var timer;
function startTimer() {
clearTimeout(timer);
timer = setTimeout(function() {
console.log('tick');
startTimer();
}, timeout);
}
startTimer();
// timeout = 2000
// timeout = 500
// clearTimeout(timer); to cancel
<script src="https://getfirebug.com/firebug-lite-debug.js"></script>
答案 3 :(得分:0)
这可能看起来有点复杂,但您可以尝试这样的事情:
(function() {
var interval = null;
var limit = 5;
function initInterval(callback, index) {
var msToSec = 1000;
if (interval) {
clearInterval();
}
console.log("Delay: ", index)
interval = setInterval(callback, index * msToSec);
}
function clearInterval() {
window.clearInterval(interval);
interval = null;
}
function resetInterval(callback, count) {
clearInterval();
initInterval(callback, count);
}
function main() {
var count = 1;
var notify = function() {
console.log("Hello World: ", count);
var _nextCount = ((count++) % limit) + 1;
if (count < 10) {
resetInterval(notify, _nextCount);
} else {
console.log("Stoping loop...");
clearInterval();
}
}
initInterval(notify, count);
}
main()
})()
&#13;