当前位置: 首页 > news >正文

网站建设怎么骗人搭建网站平台需要多少钱

网站建设怎么骗人,搭建网站平台需要多少钱,有没有免费的企业邮箱,做偏门网站浏览器和Node的事件循环机制 引言浏览器的事件循环机制 引言 由于JS是单线程的脚本语言,所以在同一时间只能做一件事情,当遇到多个任务时,我们不可能一直等待任务完成,这会造成巨大的资源浪费。为了协调时间,用户交互…

浏览器和Node的事件循环机制

  • 引言
  • 浏览器的事件循环机制

引言

由于JS是单线程的脚本语言,所以在同一时间只能做一件事情,当遇到多个任务时,我们不可能一直等待任务完成,这会造成巨大的资源浪费。为了协调时间,用户交互,脚本还有UI渲染和网络处理等行为,防止主线程阻塞才有了事件循环。而事件循环其实就是一种机制,它会不断的轮询任务队列,并将队列中的任务依此执行。

JavaScript的任务分为两种同步和异步:

  • 同步任务:在主线程上排队执行的任务,只有一个任务执行完毕,才能执行下一个任务,
  • 异步任务:不进入主线程,而是放在任务队列中,若有多个异步任务则需要在任务队列中排队等待。

因为JS是单线程,在执行代码的时候将所有函数压入执行栈中。同步任务会按照后进先出的原则以此执行。遇到异步任务时,将其放入任务队列中。当前执行栈里事件执行完毕后,就会从任务队列中取出对应异步任务的回调函数放入执行栈中继续执行。

为什么JS是单线程的脚本语言呢?

这是因为JS在执行过程中,主要操作为操作DOM树结构,如果JS有多个线程的话,多线程同时对一个DOM树进行操作,浏览器会发生错乱,根本无法判断这几个线程的优先级。

执行栈,任务队列,主线程的区分

  • 执行栈 所有的任务都是在主线程运行,形成了执行栈;
  • 任务队列 是用来存放异步任务的运行结果,事件循环是唯一的,但任务队列可以有很多个;
  • 主线程 主线程规定了要执行执行栈中的哪个事件。主线程会不停的从执行栈中读取事件,会执行完所有栈中的同步代码,这就是主线程循环。当主线程将执行栈中所有的同步任务执行完后,主线程将回去查看任务队列是否有任务,如果有,那些对应的异步任务会结束等待状态,进入执行栈并开始执行。
    更多关于异步操作Promise的解释,请移步另一篇博客

浏览器的事件循环机制

任务队列里边又分宏观任务、微观任务。

  • 宏任务:script全部代码、setTimeout、setInterval、setImmediate、I/O、UI渲染
  • 微任务:Promise.then、Process.nexTick(Node独有)、MutationObserver

new Promise是同步任务,Promise.resolve().then()是微任务
当执行栈清空后,会先检查任务队列中是否有宏任务,如果有就按照先进先出的原则,压入执行栈中执行。然后执行该宏任务产生的微任务,如果微任务中产生了新的微任务,并不会推迟到下一个循环中,而是在当前循环中继续执行。 当执行这一轮的微任务完毕后,开启下一轮循环,执行任务队列中的宏任务。
一次事件循环会处理一个宏任务和所有这次循环中产生的微任务。

对于宏任务和微任务的关系,那就是微任务始终跟在当前宏任务的后面,当前宏任务还没执行完之前,遇到宏任务先扔一边,遇到微任务就跟在当前宏任务后面。
在这里插入图片描述
这段代码的解释:首先JS本身就是一个宏任务,所以遇到setTimout时候会将这个宏任务先放到一边,继续往下执行,遇到了new Promise同步任务,所以输出同步宏任务Promise,继续往下执行,遇到微任务,跟在了当前宏任务(JS)后面,随后输出同步宏任务,当前宏任务(JS)执行完毕,执行跟在这个宏任务后面的微任务,输出同步微任务Promise,这个时候当前宏任务带着的微任务全部执行完毕,第一个事件循环结束,开启第二个事件循环,读取第二个宏任务,遇到了new Promise同步任务,直接输出,随后遇到了微任务,跟在了当前这个宏任务后面,继续向下执行,输出异步宏任务,当前宏任务执行完毕,开始执行跟在后面的微任务,输出异步微任务then。

http://www.yidumall.com/news/60435.html

相关文章:

  • 阿里云 网站根目录学推广网络营销去哪里
  • 网站开发方案书郴州网站定制
  • 硬件开发工程师薪资北京网站优化价格
  • asp.net开发移动网站模板下载普通话的顺口溜6句
  • 自微网站首页免费的网站
  • 最新网站技术关键词优化公司哪家好
  • 90设计网站官网入口长尾关键词爱站
  • 乌鲁木齐网站开发公司网店推广实训系统
  • 专业网站优化推广黑马培训是正规学校吗
  • 企业网站的建立的目的免费收录平台
  • 手机自适应网站建设维护链交换反应
  • 上市设计网站网络营销活动策划
  • 做网站买空间多少钱一个网站的seo优化有哪些
  • 做采集的网站有流量吗新手怎么学电商运营
  • wordpress 导购按钮全国推广优化网站
  • 网站封面制作上海关键词排名提升
  • 关于网站建设的英文文章百度网盘电脑网页版
  • 中国建设银行网站快速查询关键词搜索技巧
  • 专业做网站建设公2022年大事热点新闻
  • 一个网站的设计思路广东东莞大益队
  • 优秀的定制网站建设服务商无锡seo排名收费
  • 网站可以做无形资产吗竞价什么意思
  • 制作网站心得免费培训seo网站
  • 网站建设费用明细平谷头条新闻
  • 郑州网站建设优化公司赤峰seo
  • 安卓手机app开发工具深圳seo推广培训
  • 电子商务网站建设侧重点百度资源站长平台
  • 网站建设的基本流程包括哪些全国疫情高峰感染高峰进度
  • 深圳企业网站哪家强网页百度
  • 网站风格设定百度网络推广