在我网站上的iframe中,我想运行一个轮询功能。我希望它在页面加载后运行800ms,然后每100ms运行一次。
我目前正在这样做,但想知道它是否会导致任何问题:
window.setTimeout(function(){
foo();
window.setInterval(function(){
foo();
}, 100)
}, 800);
答案 0 :(得分:1)
所有setTimeout
都执行指定延迟后包含的函数。它不会对您的setInterval
电话产生任何影响。在setInterval
中使用setTimeout
之间的唯一区别是它只会在经过800毫秒延迟后触发。
如果您的foo
功能设计为始终重复,则可以在该功能中添加第二个setTimeout
:
function foo() {
window.setTimeout(foo, 100);
}
现在您需要做的就是在foo()
内拨打setTimeout
一次:
window.setTimeout(foo, 800);
这完全取决于个人偏好。显然,如果您的foo
函数被设计为在其他地方调用,那么这种方法并不理想。
var count = 0,
elem = document.querySelector('p');
function foo() {
elem.innerHTML = ++count;
window.setTimeout(foo, 100);
}
window.setTimeout(foo, 800);

<p>Count will be displayed here after the 800ms timeout finishes...</p>
&#13;