当前位置: 首页 > news >正文

单位网站源码推广技术

单位网站源码,推广技术,什么是网站建设公司,汕头网站制作找哪家异步背后的奥秘:事件循环 复习环节 JavaScript运行时 我们都知道,JavaScript本身是一个单线程的,那JavaScript是如何处理同时发生的多个任务的呢? 首先JavaScript引擎运行在一个容器中,这个容器可能是浏览器或者nod…

异步背后的奥秘:事件循环

复习环节

JavaScript运行时

我们都知道,JavaScript本身是一个单线程的,那JavaScript是如何处理同时发生的多个任务的呢?

  1. 首先JavaScript引擎运行在一个容器中,这个容器可能是浏览器或者node中;

  2. JavaScript对象存储在内存中的位置,我们称之为堆

  3. 实际执行JavaScript上下文代码是调用栈(Call Stack);

  4. 然后网页 中提供了很多的Web API提供给引擎使用,比如DOM,计时器,Fetch API等等

  5. 然后就是事件循环了,这个是JavaScript运行事的关键部分,他负责处理异步操作和任务队列;有事件循环了,JavaScript就可以在主线程中运行非阻塞式的操作了;事件循环实现一般就是通过回调队列,来自事件需要准备执行的函数,例如点击事件、计时器、一些数据等等;

异步JavaScript如何在幕后工作

  • 先看一段代码片段
el = document.querySelector('img');
el.src = 'dog.jpg';
el.addEventListener('load', () => {el.classList.add('fedeIn');
});fetch('https://xxxxxxx/api').then(res => console.log(res));//后续代码
  1. 调用堆栈 Call Stack

JavaScript是单线程的,只有一个调用堆栈,用于执行上下文代码,遵循先入后出的原则

  • 所以第一行代码会立即执行,变量赋予;

  • 第二行浏览器就开始尝试加载图片;

  • 第三行的load监听事件,会等待图片加载完成后,回调函数就会被放入回调队列中,注意,由于是load事件,这并不会阻塞上下文的代码执行;

  • fetch异步操作,它是一个网络请求,也会立即执行,返回一个promise,这个网络请求的处理会交给浏览器Web APIs

  1. Web APIs

它是浏览器提供的功能,它允许JavaScript执行异步的操作,不会阻塞主线程,所有操作是由浏览器在后台处理

  • 比如这里的图片加载喝fetch请求
  1. 微任务队列 Microtask Queue

它主要是存放Promise的回调函数,它的优先级高于回调队列,事件循环会优先处理它的任务;

  • fetch的回调函数,当网络请求完成之后,then中的回调函数就会被访问微任务队列优先处理
  1. 回调队列

它就是存放异步操作的回调函数了,比如DOM事件,定时器等等;

  • 比如上述代码中的图片加载,当加载完成后,load事件就会被放入回调队列
  1. 事件循环

它是JavaScript异步操作的核心,它会一直检查调用堆栈喝任务列表,主要是一下的步骤:

  • 当调用堆栈为空,就会调出任务队列取出任务并且执行

  • 如果微任务队列为空,就会处理回调队列的任务;

  • 所以在上述的代码中,fetch完成后会将回调函数放入微任务队列中,事件循环处理完微任务后,执行console.log(res);当图片加载完成后,load事件回调函数被放入回调队列中,微任务队列完成后,执行el.classList.add('fedeIn;

总结:

  • 经过上述的讲解,就能明白JavaScript这种多线程的模型,可以实现异步代码不阻塞主线程的执行;

  • 在我们编程中,一切外部资源的等待,完全交给浏览器和运行时的环境,这样可以有效的节省CPU和内存的资源;

  • 利用这种异步操作,也使得JavaScript对于用户交互更加的灵活,也可以更快的响应用户的操作;

  • 事件循环和任务队列也可以不创建多个线程的情况下,处理大量的并发请求;

http://www.15wanjia.com/news/49274.html

相关文章:

  • 我需要把网站做排名优化百度
  • 网站建设费用计什么科目seo博客教程
  • 做网站会什么china东莞seo
  • 外贸网站建设如何做呢网络营销组织的概念
  • 做网站一般需要多少钱设计公司网站模板
  • 广告传媒有限公司重庆seo
  • 企业网站搭建步骤网站推广策略有哪些
  • 成都企业模板网站开发推广软文范例
  • 公司怎么做网站需要多少钱百度关键词排名怎么查
  • logo设计免费在线制作安卓优化
  • 怎样上传网站一键搭建网站工具
  • 广州网站设计公司济南头条今日新闻
  • 阿里云网站模板 解析微信推广软件哪个好
  • 做动画 的 网站有哪些软件今日新闻头条内容
  • 天元建设集团有限公司鹿腾手机卡顿优化软件
  • 适合vue做的网站类型广州网站设计专注乐云seo
  • 做流量的网站应该注意什么推广代运营公司
  • 深圳网站开发搜行者seo百度seo推广
  • 做网站的去哪找私活泉州百度关键词优化
  • 广西网站建设软件推广文山seo
  • 东莞网站seo公司seo咨询推广找推推蛙
  • 常州seo收费石家庄整站优化技术
  • 杭州响应式网站常用的seo网站优化排名
  • asp网站开发的背景与环境宣传链接怎么做
  • 总结企业网站建设的流程太原优化排名推广
  • 做服饰的有哪些网站公司广告推广方案
  • pageadmin如何做网站市场推广方案
  • 有什么网站招聘做危险高薪工作的网站seo外包公司有哪些
  • 抚顺市网站建设亚马逊seo什么意思
  • 网站开发目前用的是什么语言营销策划运营培训机构