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

地方战友网站建设什么网站可以做告白的网页版

地方战友网站建设,什么网站可以做告白的网页版,用iis浏览网站,怎么做网站游戏单线程的JavaScript任务的管理 JavaScript中的任务同步任务与函数调用栈异步任务和回调队列事件循环(Event Loop) JavaScript中的任务 JavaScript最初被设计为浏览器的脚本语言。 主要用途:对页面的操作、与浏览器的交互、与用户的交互、页…

单线程的JavaScript任务的管理

    • JavaScript中的任务
    • 同步任务与函数调用栈
    • 异步任务和回调队列
    • 事件循环(Event Loop)

JavaScript中的任务

JavaScript最初被设计为浏览器的脚本语言。

主要用途:对页面的操作、与浏览器的交互、与用户的交互、页面逻辑处理等。

如果将JavaScript设计成多线程,当多个线程对同一个DOM节点进行操作时,线程间的同步问题会变得非常复杂,为了避免这样的复杂性,JavaScript被设计为单线程。

单线程任务需要一个一个处理,如果有一个任务是等待用户输入,那么当用户操作前,所有任务就全部处于等待状态,页面就会呈现假死状态。为了高效的进行页面间的交互和渲染处理,围绕着任务执行是否阻塞主线程,将JavaScript中的任务分为同步任务和异步任务。
在这里插入图片描述

同步任务与函数调用栈

JavaScript在执行过程中每进入一个不同运行环境时,都会创建一个相应的执行上下文
JavaScript解释器会以栈的方式来管理这些执行上下文以及函数之间的关系,形成函数调用栈
调用栈可以理解为存储函数调用的栈结构,遵循先进后出的原则
在这里插入图片描述

异步任务和回调队列

异步任务会包括一些需要等待响应的任务,包括用户交互、http请求、定时器等
异步任务会提供回调函数,当异步任务有了运行结果之后,该任务则会被添加到回调队列中,主线程会在适当的时候从回调队列中取出相应的函数并执行
在这里插入图片描述

事件循环(Event Loop)

事件循环主要处理JavaScript中同步任务和异步任务的执行问题
根据运行环境不同,也会分为浏览器中的Event Loop和NodeJs中的Event Loop
在这里插入图片描述

浏览器中的Event Loop
在浏览器中,每当一个被监听的事件发生时,事件监听器绑定的相关任务就会被添加到回调队列中,通过事件产生的任务是异步任务,常见的有
在这里插入图片描述
事件循环机制
JavaScript的运行过程,如图:
在这里插入图片描述
主线程运行的时候,会产生堆和栈,其中堆为内存,栈为函数调用栈,Event Loop负责执行代码收集和处理事件以及执行队列中的子任务,具体包括以下过程

  1. JavaScript有一个主线程和调用栈,所有任务最终都会被放到调用栈等待主线程执行
  2. 同步任务会放到调用栈中,按照顺序等待主线程依次执行
  3. 主线程之外存在一个回调队列,回调队列中的异步任务最终在主线程中以调用栈的方式执行
  4. 同步任务都在主线程上执行,栈中代码在执行的时候调用浏览器的API,此时会产生异步任务
  5. 异步任务会在有了结果(比如被监听的事件发生时)之后,将异步任务已经关联的回调函数放入回调队列中
  6. 调用栈中任务执行完毕后,此时处于空闲状态,会从回调队列中获取任务进行处理

以上任务会不断重复,这就是JavaScript的运行机制,称为事件循环机制

NodeJS中的Event Loop
Event Loop的设计是Node.js可以通过将操作转移到系统内核中,来执行非阻塞I/O操作
在这里插入图片描述
与浏览器不同,事件循环分成不同的阶段
在这里插入图片描述
由于事件循环的划分不一致,nodejs在对宏任务和微任务上的处理也不一样
在这里插入图片描述
为什么会将异步任务分为宏任务和微任务?是为了避免回调队列中等待异步执行的任务过多,导致某些异步任务的等待时间过长

在浏览器的异步回调队列中,宏任务和微任务的执行过程如下:
在这里插入图片描述

参考教程:前端进阶教程

http://www.dtcms.com/a/491136.html

相关文章:

  • ODB-Mysql API接口(常用类与函数)
  • AI视频修复技术入门:从Sora水印谈起,我们如何“抹去”未来影像的瑕疵?
  • 佛山中小企业网站制作濮阳网络
  • 招生网站建设方案烟台网站建设首推企汇互联见效付款
  • 第12章:Spring AI Alibaba 可观测性—深入追踪AI应用的“黑盒”行为与性能瓶颈
  • 策略模式:让算法选择像点菜一样简单
  • 10.16 作业
  • 上海企业工商查询拼多多seo是什么意思
  • 国外人像摄影网站国内建站平台
  • 详细的Linux系统更新yum源的教程
  • 余姚做网站设计的淄博网站制作价格低
  • HolmesGPT 正式上线 丨 KubeSphere 助力云原生智能排障新体验
  • 【开题答辩过程】以《基于微信小程序教学评价平台的设计与实现》为例,不会开题答辩的可以进来看看
  • 淘宝式网站建设国外注册品牌 建设网站
  • 邵阳网站建设设计哈尔滨制作网站工作室
  • 管理中心理学问:人为什么要学习?
  • 长沙网站托管公司排名wordpress相册幻灯片
  • ps网站怎么做超链接海南百度首页广告
  • seo网站建设哪家专业wordpress建好本地站怎么上传
  • JVM 之 volatile可见性、禁止指令重排序的JVM实现
  • 荣耀手机2025年10月发布的新品Magic8比起Magic7,在硬件、性能、价格等上有什么区别,有什么优势
  • YOLO V1 和 V2笔记
  • C++ 创建一个窗口采用GDI的方式绘制文字
  • 谷歌网站推广费用建网站域名注册
  • python 网站开发 普及消防证怎么考取需要什么条件
  • 网络层次划分-网络层
  • 做响应式网站应该注意什么问题有自己的域名怎么建设网站
  • ClickHouse 数据更新策略深度解析:突变操作与最佳实践
  • 餐饮商城网站建设网站备案幕布要求
  • Prometheus监控部署