最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • event loop 事件循环学习

    正文概述 掘金(jason_yang)   2021-03-12   310

    js的由来

    1. 主要是解决当时表单提交的时候一些校验处理,因为当年带宽比较小,如果没有校验每次重复提交很浪费资源。
    2. js是为浏览器服务的,浏览器统一调度js

    事件循环描述: 浏览器用于协调用户交互包括:鼠标,键盘,JS,渲染,网络等行为的机制。 js没有权限去获取系统的时间,都是被动的,依赖与浏览器 大白话:js没有事件循环,是浏览器的通过事件循环-控制了不同的事件源的交互。

    大部分事件源都是异步的,而且是队列形式-排队执行。

    队列分为两种队列

    1. 外部队列:外部的都是事件,外部每次只执行一次,串行执行 浏览器的各个事件的队列 用户交互(鼠标,键盘) dom操作(页面渲染) 定时器(settimeout) 网络请求(ajax) historyAPI
    2. 内部队列 js内部执行的任务队列 promise mutaionObsve object.observe已废弃

    event loop 事件循环学习

    执行流程 1.一次外部事件 2.浏览器事件 3.Html渲染 4.回到1.

    event loop 事件循环学习

    注意:每一个都是一个事件源外部队列,如果有多个 按需执行外部队列

    event loop 事件循环学习

    event loop 事件循环学习

    node.js

    node.js 中 js 依附于libuv ,取消所有外部输入(如键盘,鼠标),只保留了外部队列和内部队列,新增I/O

    1. 事件循环的过程没有 HTML 渲染。只剩下了外部队列和内部队列这两个部分。
    2. 外部队列的事件源不同。Node.js 端没有了⿏标等外设但是新增了⽂件等 IO。
    3. 内部队列的事件仅剩下 Promise 的 then 和 catch。

    node.js 10版本 11版本 或者之前的版本 eventloop事件是执行完所有相同类型宏事件,再执行微事件

    node.js 12版本 eventloop事件是跟浏览器一致,一次只执行一个宏事件,同时清空宏下的所有微事件

    setImmediate 是node.js 新增的独有方法 解决setTimeOut精度问题 //这里设置的0秒是有误差的,因为循环是依赖浏览器执行 setTimeout(()=> { },0)


    起源地下载网 » event loop 事件循环学习

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元