Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript HTML DOM位置刷新率_Javascript_Css_Dom_Html - Fatal编程技术网

Javascript HTML DOM位置刷新率

Javascript HTML DOM位置刷新率,javascript,css,dom,html,Javascript,Css,Dom,Html,假设我得到了这个: aFunction = function(){ var div = document.getElementById('div'); div.style.top = '0px'; div.style.top = '50px'; div.style.top = '100px'; anotherFunction(); } 如果我调用函数a函数,div是否会显示在50px位置?或者只是从0px到100px?(我很关心性能。) 另外,位置变化确

假设我得到了这个:

aFunction = function(){
    var div = document.getElementById('div');
    div.style.top = '0px';
    div.style.top = '50px';
    div.style.top = '100px';
    anotherFunction();
}
如果我调用函数
a函数
,div是否会显示在50px位置?或者只是从0px到100px?(我很关心性能。)

另外,位置变化确切发生在什么时候

任务完成后是否立即发生

或在
a功能的末尾

或者在另一个函数()的末尾


或者当浏览器处于空闲状态时?

第四行和第五行将被忽略,并且永远不会生效,因为第六行会立即覆盖它们。位置更改也将立即被记录(如您可以
警报(div.style.top)
并且它将返回最后分配的值),尽管它是在浏览器空闲时呈现的。在第二行结束后,第三行结束,第四行结束,第五行结束(第六行结束),简单地说,渲染是单独完成的。

所有这些样式更改都将由浏览器拾取,DOM将开始重新流动。这些变化发生得如此之快,以至于浏览器永远都没有机会完成构图和重新绘制。除非您运行的硬件更新CSSOM需要16毫秒以上,否则可能无法找到

如果您这样做了,那么当片段被添加到DOM中时,回流只会发生一次

aFunction = function(){
  var div = document.createElement('div');

  div.style.top = '0px';
  div.style.top = '50px';
  div.style.top = '100px';

  document.body.appendChild(div);
}
我在Chrome中运行了这段代码,只得到最后一种颜色的渲染。我本以为能看到蓝色背景10秒钟,但我从来没有看到过

div.style.backgroundColor = "green";
div.style.backgroundColor = "blue";
for(var i = 0; i < 1000000; i++){}
div.style.backgroundColor = "yellow"
div.style.backgroundColor=“绿色”;
div.style.backgroundColor=“蓝色”;
对于(var i=0;i<1000000;i++){
div.style.backgroundColor=“黄色”