浏览器事件环

    浏览器模型主要分为几个部分:User Interface用户界面、Browser engine浏览器引擎、Rendering engine渲染引擎(呈现引擎)等。
    前端中提到的事件环,一般指:浏览器的eventLoop,另外还有一个是node中的事件环。浏览器是多进程的,js中它的主线程是单线程的,意思是同一时间,要么是渲染js,要么是渲染css,js和css是共用同一个线程渲染的,一般是先渲染js,等空闲下来再渲染css。代码中栈中执行,栈是先进后出,可以思考函数的调用栈,one调用了two,two调用了three,销毁的时候是three先销毁。对于异步执行的事件,异步回调或者异步事件得到结果后,会放到一个队列,当主栈中的功能都执行完后,会从队列中的第一个开始执行。
    浏览器的事件环机制中异步方法也会再分类:1)宏任务、2)微任务。比如:setTimeout就是宏任务,Promise.then就是微任务。微任务会在宏任务之前执行。异步队列一般是2个队列:微任务队列,宏任务队列。当代码栈中的代码执行完成后,会先从微任务队列中取,把微任务队列中的任务清空,然后从宏任务中取第一个,然后不会马上走宏任务队列中的第二个,然后再去查看微任务队列,把微任务队列再清空。接下来,再去宏任务队列中取当时的第一个宏任务。

转载于:https://juejin.im/post/5bb0bd56e51d450e964a0004

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值