Js事件循环机制
在线程之内,又被分为了两个队列:同步任务队列,异步任务队列 同步环境执行(step1) -> 事件循环1(step4) -> 事件循环2(step4的重复)…
其中的异步进程有:
a、类似onclick等,由浏览器内核的DOM binding模块处理,事件触发时,回调函数添加到任务队列中;
b、setTimeout等,由浏览器内核的Timer模块处理,时间到达时,回调函数添加到任务队列中;
c、Ajax,由浏览器内核的Network模块处理,网络请求返回后,添加到任务队列中。
异步执行的运行机制
(1)所有同步任务都在主线程上执行,形成一个执行栈(execution context stack)。
(2)主线程之外,还存在一个"任务队列"(task queue)。只要异步任务有了运行结果,就在"任务队列"之中放置一个事件。
(3)一旦"执行栈"中的所有同步任务执行完毕,系统就会读取"任务队列",看看里面有哪些事件。那些对应的异步任务,于是结束等待状态,进入执行栈,开始执行。
(4)主线程不断重复上面的第三步。
相关推荐HOT
更多>>十个常用的自定义过滤器
(1)去除空格type:1-所有空格2-前后空格3-前空格4-后空格。(2)任意格式日期处理(3)字母大小写切换type:1:首字母大写2:首页母小写3:大小...详情>>
2023-05-24 18:44:20Access数据库介绍
一、Access数据库介绍 Access数据库是微软公司开发的一种关系型数据库管理系统,最初发布于1997年。它属于桌面数据库,主要用于个人和小...详情>>
2023-05-10 09:37:16vue等单页面应用及其优缺点
效果会比较炫酷(比如切换页面内容时的专场动画)。导航不可用,如果一定要导航需要自行实现前进、后退。(由于是单页面不能用浏览器的前进后退...详情>>
2023-04-25 10:00:20项目中的性能优化
keep-alive:缓存的组件的状态,切换组件的时候减少请求(结合实际) 组件销毁的时候, 将绑定的window等相关的事件取消监听,防止内存泄露...详情>>
2023-04-11 16:46:17