保姆级带你理解事件循环机制

34 篇文章 0 订阅
30 篇文章 1 订阅

题记:面试总有些面试官喜欢问,什么是循环机制,前端代码如何执行的,什么又是宏任务微任务,oh,my god,

我们首先需要理解以下几个概念

概念:

调用栈

调用栈是JS引擎追踪函数执行的一个机制,当一次有多个函数被调用时,通过调用栈就能够追踪到哪个函数正在被执行以及各个函数之间的调用关系。

你可以简单理解为执行函数的容器。

WEB API

 

当你在调试,或者在决定如何以最佳的方式为任务队列和微任务队列安排调度顺序的时候,如果你了解关于 JavaScript 运行时是如何在背后执行这一切的,那将对你的理解会非常有帮助。

JavaScript 本质上是一门单线程语言。对于在它被设计出来的那个年代来说,这样的设计是一个很好的选择。那个时候的人们很少有多处理器计算机,而且当时预期由 JavaScript 处理的代码量也相对较少。

当然,随着时间的流逝,计算机已经发展成为强大的多核系统,而 JavaScript 已经成为计算世界中使用最广泛的语言之一。大量最流行的应用程序至少有一部分是基于 JavaScript 代码的。为了支持这一点,有必要找到方法让项目摆脱单线程语言的限制。

自从定时器(setTimeout() 和 setInterval())加入到 Web API 后,浏览器提供的 JavaScript 环境就已经逐渐发展到包含任务调度、多线程应用开发等强大的特性。了解 JavaScript 运行时是如何安排和运行代码的对了解 queueMicrotask() 会非常有作用。

上边一段话来源于 深入:微任务与 Javascript 运行时环境 - Web API 接口参考 | MDN (mozilla.org)

我们可以理解为特殊方法调度的地方。 

event loop

Event Loop即事件循环,是指浏览器或Node的一种解决javaScript单线程运行时不会阻塞的一种机制,也就是我们经常使用异步的原理。

大白话就是就是解决异步过程的,解决单线程的问题的。

微任务队列

例如:Promise/$nextTick

宏任务队列

例如:setTimeout/setInterval

空间执行图

事件执行逻辑图 

总结 

我们经常会需要分析是否为同步异步,从空间图我们看到是否属于web API即可。

写的仓促,但愿对于朋友们有所帮助,你的点赞是我前进的动力!!! 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要开发一个Python博客网站,需要按照以下步骤进行。 首先,我们需要准备开发环境。确保你已经安装了Python解释器和适用于开发Web应用程序的框架,如Django或Flask。在命令行中输入相应的安装命令即可。 接下来,创建一个新的项目目录,并进入该目录。使用命令行创建一个新的虚拟环境,以便为该项目提供专用的Python运行环境。然后,激活虚拟环境。 现在,我们可以开始创建Django项目。通过运行`django-admin startproject myblog`命令,在项目目录中创建一个名为`myblog`的Django项目。 进入`myblog`目录后,创建一个名为`blog`的应用程序。运行`python manage.py startapp blog`命令即可。 然后,在Django的配置文件`settings.py`中,将`blog`应用程序添加到`INSTALLED_APPS`列表中,以便在项目中启用该应用程序。 接下来,我们需要定义模型。在`blog/models.py`文件中,创建一个博客文章的模型。可以为文章定义字段,如标题、内容、作者和发布日期等。 然后,进行数据库迁移。运行`python manage.py makemigrations`和`python manage.py migrate`命令,将模型的更改同步到数据库。 现在,我们可以创建视图函数。在`blog/views.py`文件中,编写视图函数来处理博客文章的请求。可以定义一个函数来显示所有文章,以及一个函数来显示单个文章的详细信息。 然后,在`blog/urls.py`文件中,设置URL模式,将URL路径与相应的视图函数关联起来。 接下来,创建博客文章的模板。在`blog/templates`目录下创建一个名为`index.html`的模板文件,用于显示所有文章。还可以创建一个名为`detail.html`的模板文件,用于显示单个文章的详细信息。 最后,我们需要配置Django的URL模式,将根URL路径与博客应用程序中的URL模式关联起来。在项目的根`urls.py`文件中,导入`include`函数,并在`urlpatterns`列表中添加博客应用的URL模式。 现在,你可以运行项目了。在命令行中输入`python manage.py runserver`命令,启动Django开发服务器。然后,在浏览器中访问`http://localhost:8000/`,即可查看你的Python博客网站。 这只是一个开发博客网站的简单示例,你可以根据自己的需求进行更多的开发和定制。下一篇将介绍如何添加用户认证和评论功能,敬请期待。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值