javascript - 为什么我的 JavaScript 不改变这个 while 循环中的背景颜色?

标签 javascript

我试图了解 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/

相关文章:

javascript - 这个javascript代码是如何工作的?

javascript - 我可以将状态属性设置为回调吗?

javascript - 如何隐藏/显示 Bootstrap 网格中的元素并更新位置

javascript - 通过 javascript 访问转发器中的 asp 元素

javascript - Flash 是否正在成为一种垂死的网络技术? (长期)

javascript - 新的谷歌脚本版本抛出 javascript 错误

javascript - Node.js - 套接字断开连接事件无法正常工作

javascript - 我需要一种方法来获取一些 json 并使用 node.js 将其转换为 xml

javascript - Application.js 没有被处理成最终 View

仅包含最后 N 个元素的 javascript 数组