我有一个javascript.var startTime = Date.now(); while ((Date.now() - startTime) < 30000) { display(); }
的问题,当我添加这些代码行,并试图运行我的脚本,它给了我一个错误:内存不足。
我的原始代码是:
<script>
var startTime = Date.now();
while ((Date.now() - startTime) < 30000) {
display();
}
function display() {
setTimeout(showLeft, 1000);
setTimeout(showRight, 2000);
setTimeout(showBLeft, 3000);
setTimeout(showBRight, 4000);
setTimeout(clearAllDiv, 6000);
}
function showLeft() {
document.getElementById("left").innerHTML = "Hızlı";
}
function showRight() {
document.getElementById("right").innerHTML = "Oku";
}
function showBLeft() {
document.getElementById("bleft").innerHTML = "Çabuk";
}
function showBRight() {
document.getElementById("bright").innerHTML = "Anla";
}
function clearAllDiv() {
document.getElementById("left").innerHTML = " ";
document.getElementById("right").innerHTML = " ";
document.getElementById("bleft").innerHTML = " ";
document.getElementById("bright").innerHTML = " ";
}
</script>
我想重复我的显示功能30秒。当我把30. 000改成1. 000时效果很好,但我需要30秒而不是1秒。
编辑:我正在创建无限循环,由于这个原因,我得到了内存异常。
2条答案
按热度按时间nsc4cvqm1#
你已经创建了一个无限循环。也许更像这样:
bf1o4zei2#
你的
while
循环阻塞了定时器回调的异步执行,同时你的循环创建了一个巨大数量的定时器,耗尽了内存。相反,您可以安排
display
调用,如下所示: