请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

请问老师关于EventLoop

看了老师关于EventLoop的讲解,想问下老师有更深层次的进阶文章吗。
看到一些文章说eventloop中,每次宏任务不一定会触发页面渲染,也就是两个间隔的宏任务并不一定会触发页面渲染,可能会被合并成一次渲染。

以及这段代码百思不得其解。。请老师解惑
刷新页面,有时候是蓝色有时候却是红色

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    .div {
      position: relative;
      height: 200px;
      width: 200px;
    }
  </style>
</head>

<body>
  <div class="div" id="app"></div>
  <script>
    const div = document.getElementById('app')

    // div.style.background = 'red'

    function toBlue() {
      console.log('执行 frame')
      div.style.background = 'blue'
    }
    setTimeout(() => {
      div.style.background = 'red'
    },0)

    window.requestAnimationFrame(toBlue)
  </script>
</body>

</html>

正在回答 回答被采纳积分+3

1回答

双越 2021-01-27 09:03:55

基本原理是基本原理,是我们认识一件事物的基本逻辑。

浏览器发展这么多年,按照基本原理实现,里面肯定做了很多很多的优化。所以不要拿基本原理和具体实现去做对比。

这就类似,你可以用 10M 的代码实现一个基本的操作系统,但是真正的 linux 系统却要 1G 大小,这是为啥呢?

0 回复 有任何疑惑可以回复我~
  • 提问者 hy_wang #1
    老师有一些更加深入的文章分享吗,想更加深入了解但是不知道应该从哪里入手
    回复 有任何疑惑可以回复我~ 2021-01-27 09:14:58
  • 双越 回复 提问者 hy_wang #2
    可以查一查 “libuv 源码分析”
    回复 有任何疑惑可以回复我~ 2021-01-27 17:28:12
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信