我试图了解 JavaScript 代码的阻塞性质。我知道javascript是单线程的。所以我们必须使用计时器和回调来实现某些功能。
在本例中,我有一个正在更改背景颜色的循环。在循环结束之前它不会改变背景颜色。为什么?为什么浏览器不能只更新文档颜色?
<script>
$(document).ready(function(){
console.log('hi')
var x = 0;
var color = 'red';
while (x< 10000000) {
x+= 15 ;
document.body.style.background = color;
}
});
</script>
最佳答案
Dom 操作将被推送到堆栈,并应在执行结束时开始拉动它,在您的情况下,更改背景颜色是堆栈中的第一个 Dom 操作,因此一旦完成,更改背景颜色操作将被拉动并生效。
关于javascript - 为什么我的 JavaScript 不改变这个 while 循环中的背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40023612/