Open DamomHd opened 4 years ago
JS任务分类分为 同步任务和异步任务
虽然JS是单线程的,但是浏览器内核却是多线程的,在浏览器内核中不同的异步操作由不同的浏览器内核模块调度执行,异步任务操作会将相关回调添加到任务队列中
然后不同的异步操作添加到任务队列的时机也是不同的,比如onclick、setTimeout、ajax处理的方式都不相同
这些异步操作是由浏览器内核来执行的,浏览器内核上包含3种webAPI,分别是DOM Binding(Dom绑定)、network(网络请求)、timer(定时器)模块
按这种分类方式,JS的执行机制是:
以上三步循环执行,这就是事件循环(Event loop),它是连接任务队列和控制调用栈的
虽然JS是单线程的,但是浏览器内核却是多线程的,在浏览器内核中不同的异步操作由不同的浏览器内核模块调度执行,异步任务操作会将相关回调添加到任务队列中
然后不同的异步操作添加到任务队列的时机也是不同的,比如onclick、setTimeout、ajax处理的方式都不相同
这些异步操作是由浏览器内核来执行的,浏览器内核上包含3种webAPI,分别是DOM Binding(Dom绑定)、network(网络请求)、timer(定时器)模块
按这种分类方式,JS的执行机制是:
以上三步循环执行,这就是事件循环(Event loop),它是连接任务队列和控制调用栈的