请问老师关于EventLoop

来源:1-2 课程适用于最新版node.js

hy_wang

2021-01-27

看了老师关于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>
写回答

1回答

双越

2021-01-27

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

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

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

0
2
双越
回复
hy_wang
可以查一查 “libuv 源码分析”
2021-01-27
共2条回复

Node.js+Express+Koa2+Nest.js 开发服务端

从入门到实战,一站式掌握 Node.js+Express+Koa2

4051 学习 · 2006 问题

查看课程