理解浏览器中的 EventLoop

24-05-24     slbcun     1118℃     0

我会先讲解浏览器端的 Eventloop 的运行机制,待你对浏览器端有了一定的理解之后,再带你设计一些 Node.js 的 Eventloop 的底层逻辑。你可以发现,无论是浏览器端还是服务端,都在使用 Eventloop,虽然两者机制不同,但都利用了 JavaScript 语言的单线程和非阻塞的特点。希望你能扎实地掌握这部分内容,因为这对你在工作中编写高性能的 JavaScript 代码有所帮助。

那么依照惯例,在课程开始前请你先思考两个问题:

浏览器端的 Eventloop 起到了什么作用?

Node.js 服务端的 Eventloop 的作用又表现在哪?

现在开始跟着我一起探究浏览器端的 Eventloop 吧。

浏览器的 Eventloop

Eventloop 是 JavaScript 引擎异步编程背后需要特别关注的知识点。JS 在单线程上执行所有操作,虽然是单线程,但是能够高效地解决问题,并能给我们带来一种“多线程”的错觉,这其实是通过使用一些比较合理的数据结构来达到此效果的。我们一起来看下 JavaScript 引擎背后都有哪些东西在同时运转。

1.调用堆栈(call stack)负责跟踪所有要执行的代码。每当一个函数执行完成时,就会从堆栈中弹出(pop)该执行完成函数;如果有代码需要进去执行的话,就进行 push 操作


分享 收藏 查看详细内容请点击:   下载
发表我的评论

表情

共0条评论
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~