现代浏览器操作Dom对象时,从脚本角度看,更改是即时生效的,但从视图角度看,在返回事件队列之前不会渲染这些Dom对象更改,这可防止Dom对象被渲染成不一致的状态
<div id="box"></div>
#box {
width: 100px;
height: 100px;
background-color: blue;
}
setTimeout(function() {
var box = document.getElementById('box');
box.style.backgroundColor = 'red';
var start = new Date;
while (new Date - start < 2000) {
// wait 1 second...
};
}, 0);
效果:两秒之后才会变成红色