理解js的异步

js是一门单线程语言,因为它运行在浏览器渲染主线程中,而渲染主线程只有一个

渲染主线程又承担着诸多的任务,解析html,渲染页面,执行js都在其中运行

如果采用同步的方式,就极有可能导致渲染主线程阻塞,从而导致消息队列的其他任务无法得到执行
这会导致繁忙的主线程白白的消耗时间,其次也会导致页面无法及时更新,给用户造成卡顿现象

所以浏览器采用异步的方式来避免,具体方法是,当某些任务发生时,如计时器,网络,事件监听,等,主线程会将任务交给其他线程,随后自己立马结束任务的执行,转而去执行其他代码(任务),等其他线程完成时(交过去的任务的线程),将事先传递的回调函数包装成任务,加入到消息队列末尾排队,等待主线程的调度执行

这样的异步模式下,浏览器永不阻塞,从而最大限度的保证了单线程的流畅运行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值