前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >浏览器的UI线程

浏览器的UI线程

作者头像
dys
发布2018-04-03 11:08:03
5650
发布2018-04-03 11:08:03
举报
文章被收录于专栏:性能与架构
代码语言:javascript
复制
所有用于更新用户界面的操作都是由浏览器的UI线程来完成

UI线程维护一个队列,把每个要更新UI的操作都做为一个任务添加到队列中,然后等UI线程空闲时再按顺序进行处理

示例

<button onclick="doClick()">
点击测试
</button>

<script>
function doClick(){
  var div = 
    document.createElement("div");

  div.innerHTML = "test";
  document.body.appendChild(div);
}
</script>

当用户点击按钮时,会触发UI线程来创建两个任务,并添加到队列中,

第一个任务是更新按钮的点击状态样式,是浏览器默认的操作

第二个任务是执行 doClick()

UI线程空闲下来后,先从队列中取出第一个任务来执行,完成后,再取出第二个任务,doClick()中需要创建一个元素并添加到body,这也是一个更新UI的操作,UI线程会再创建一个任务并添加到队列中,然后在UI线程空闲后再次从队列中取出任务来执行

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2015-11-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JAVA高性能架构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档