javascript - 怎么理解js的这个看起来同步,但是却是异步的demo
黄舟
黄舟 2017-04-10 14:52:49
0
2
474

http://jsfiddle.net/hidoos/SNBYV/259/embedded

html 

jsvar box = document.getElementById('box'); box.style.backgroundColor = 'red'; var start = new Date; while (new Date - start < 3000) { // wait 3 second... };

box的初始颜色是blue,我以为按照顺序执行的话,不用等待3s就能直接修改box的颜色为red,而实际的情况则是要等待了3s才修改box的颜色。不是很明白为什么会这样。

为什么不直接执行dom操作,非要等while执行这个3s,才去执行dom操作呢?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复 (2)
Ty80

while循环 3秒内busy wait,使浏览器一直在执行js从而阻止了浏览器渲染

    左手右手慢动作
    var start = new Date; while (new Date - start < 3000) { // 打开页面后,3秒都在做这里面的东西了 };

    其实一打开页面,box 的 backgroundColor 已经变为red 了;
    只是那段JS 影响了页面的渲染;
    你把 while 那段代码去了,就知道了;

      最新下载
      更多>
      网站特效
      网站源码
      网站素材
      前端模板
      关于我们 免责声明 Sitemap
      PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!