资讯专栏INFORMATION COLUMN

JS 总结之事件循环

zhangyucha0 / 2510人阅读

摘要:众所周知,为了避免复杂,被设计成了单线程。任务单线程意味着所有任务都需要按顺序执行,如果某个任务执行非常耗时,线程就会被阻断,后面的任务需要等上一个任务执行完毕才会进行。那么问题来了,执行异步任务后会发生什么

众所周知,JavaScript 为了避免复杂,被设计成了单线程。

⛅️ 任务

单线程意味着所有任务都需要按顺序执行,如果某个任务执行非常耗时,线程就会被阻断,后面的任务需要等上一个任务执行完毕才会进行。而大多数非常耗时的任务是网络请求,CPU 是闲着的,所以为了资源的充分运用,便有了异步的概念。

异步便是把这些非常耗时的任务放到一边,其他任务先进行,等处理完其它不需要等待的任务再回头来计算刚刚被放一边的任务。这样就不会阻断线程啦。

就像上面讲述的,后面的任务需要等上一个任务执行完毕才会进行,叫同步任务;把这些非常耗时的任务放到一边,其他任务先进行,叫异步任务

那么问题来了,执行异步任务后会发生什么

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/100453.html

相关文章

  • JS专题数组去重

    摘要:将元素作为对象的键,默认键对应的值为如果对象中没有这个键,则将这个元素放入结果数组中去。 前言 数组去重在日常开发中的使用频率还是较高的,也是网上随便一抓一大把的话题,所以,我写这篇文章目的在于归纳和总结,既然很多人都在提的数组去重,自己到底了解多少呢。又或者是如果自己在开发中遇到了去重的需求,自己能想到更好的解决方案吗。 这次我们来理一理怎么做数组去重才能做得最合适,既要考虑兼容性,...

    only_do 评论0 收藏0
  • 浅析 JS 事件循环 Microtask 和 Macrotask

    摘要:常见应用则是为了完成一些更新应用程序状态的较小的任务,如处理的回调和的修改,以便让这些任务在浏览器重新渲染之前执行。常见应用执行顺序的实现需要至少一个和至少一个。 简介 我们在上一篇 《浅析 JS 中的EventLoop 事件循环》 中提到一个 Event Queue,其实在事件循环中 queue 一共有两种,还有一种叫 Job Queue 其中 Event Queue 在 HTML...

    sihai 评论0 收藏0
  • JS专题事件循环

    摘要:宏任务需要多次事件循环才能执行完。总结事件循环是和事件调用机制的核心,保证了页面可以有序无阻塞的进行。事件循环的主要逻辑是先执行调用栈,直到清空调用栈只剩下全局上下文。微任务执行后完,进行页面渲染和垃圾回收后进行下一轮事件循环。 准备知识 1. 进程(process) 进程是系统资源分配一个独立单位,一个程序至少有一个进程。比方说:一个工厂代表一个 CPU, 一个车间就是一个进程,任一...

    mengera88 评论0 收藏0
  • JS异步编程callback

    摘要:而异步则是相反,调用在发出之后,这个调用就直接返回了,所以没有返回结果而是在调用发出后,被调用者通过状态通知来通知调用者,或通过回调函数处理这个调用。总结回调函数是异步编程中的基石,但同时也存在很多问题,不太适合人类自然语言的线性思维习惯。 为什么 JS 是单线程? 众所周知,Javascript 语言的执行环境是单线程(single thread)。 所谓单线程,就是指一次只能完成一...

    superw 评论0 收藏0
  • 【前端性能优化】高性能JavaScript整理总结

    摘要:然后执行环境会创建一个活动对象,活动对象作为函数运行的变量对象,包含所有局部变量命名参数参数集合和,当执行环境销毁,活动对象也被销毁。 高性能JavaScript整理总结 关于前端性能优化:首先想到的是雅虎军规34条然后最近看了《高性能JavaScript》大概的把书中提到大部分知识梳理了下并加上部分个人理解这本书有参考雅虎特别性能小组的研究成果,所以跟34 军规有很多相似之处有不当之...

    zzbo 评论0 收藏0

发表评论

0条评论

zhangyucha0

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<