Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.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 在浏览器中,UI线程是否有自己的UI队列,其队列成员仅为dom更新操作(就像‘;dom.style.color=‘;#fff’;’?_Javascript_Browser_Ui Thread_Event Loop - Fatal编程技术网

Javascript 在浏览器中,UI线程是否有自己的UI队列,其队列成员仅为dom更新操作(就像‘;dom.style.color=‘;#fff’;’?

Javascript 在浏览器中,UI线程是否有自己的UI队列,其队列成员仅为dom更新操作(就像‘;dom.style.color=‘;#fff’;’?,javascript,browser,ui-thread,event-loop,Javascript,Browser,Ui Thread,Event Loop,我看到了一个演示,介绍了浏览器中javascript运行时的工作原理。它将dom更新操作放在消息队列中,消息队列由js线程处理。但在我看来,dom更新操作是由UI线程处理的,而不是由js线程处理的。演示中有什么问题吗?UI线程是否有自己的UI队列,其队列成员仅为dom更新操作? 我希望有人能给我更多关于js线程和ui线程之间交互的细节,谢谢。演示代码如下所示: (function() { var ele = document.querySelector(‘#ele’); ele.

我看到了一个演示,介绍了浏览器中javascript运行时的工作原理。它将dom更新操作放在消息队列中,消息队列由js线程处理。但在我看来,dom更新操作是由UI线程处理的,而不是由js线程处理的。演示中有什么问题吗?UI线程是否有自己的UI队列,其队列成员仅为dom更新操作? 我希望有人能给我更多关于js线程和ui线程之间交互的细节,谢谢。演示代码如下所示:

(function() {
    var ele = document.querySelector(‘#ele’);
    ele.style.color = ‘#fff;
  // will run 1 minutes
  longCalc();
})()

UI线程号不处理DOM更新。在js执行期间,所有DOM操作都是同步处理的。回流操作有一种特殊情况,通常只有在执行所有js和DOM操作后才会触发,但也可以在脚本执行期间使用例如
元素.offsetTop
强制执行。UI线程将负责重新绘制操作。我没有官方来源,但这取决于实现。例如,在chrome中,如果您执行
警报
(js线程阻止操作),页面将不会被重新绘制,但在FF中会被重新绘制。可能会重复