【发布时间】:2013-06-14 15:34:10
【问题描述】:
我正在构建一个 JavaScript 库。我一直在研究一个像这样工作的延迟函数:
function delay(ms) {
var start = new Date().getTime();
for (var i = 0; i < 1e7; i++) {
if ((new Date().getTime() - start) > ms){
break;
}
}
}
我的想法是我可以做这样的事情:
window.onload = function() {
delay(5000); //this function will act 5 seconds after the page loads
document.getElementById('Header').innerHTML = 'Welcome';
};
延迟工作正常,但它会停止页面上的所有 javascript,而不仅仅是延迟 window.onload 函数。
有人知道我能做什么吗?
【问题讨论】:
-
不要那样做!永远不要循环等待条件。使用 setTimeout 和队列。
-
恐怕这是一种绝对糟糕的做事方式。您需要查看
setTimeout()。 -
@Pointy - 好的,我会的
-
您将无法获得像您想要的那样简单的解决方案。这是a related question with a simple queue implementation。
标签: javascript html