首页 > 编程语言 >JavaScript中的异步模式

JavaScript中的异步模式

时间:2024-07-04 20:19:56浏览次数:12  
标签:异步 同步 JavaScript 模式 任务 执行

JavaScript中的异步模式

JavaScript语言的执行环境是“单线程(singlethread)”,就是指一次只能完成一个任务。
如果有多个任务,就必须排队,等前面一个任务完成,再执行后面一个任务,以此类推。
这种模式的好处是实现起来比较简单,执行环境相对单纯,
坏处是只要有一个任务耗时很长,后面的任务都必须排队等着,会拖延整个程序的执行。

但是浏览器加载一些需要网络请求的内容,比如图片资源、ajax等,由于是单线程,需要等待这些内容访问完才可以执行下面的代码,就会造成同步阻塞。
为了解决这个问题, JavaScript将任务的执行模式分成两种:同步(Synchronous)和异步(Asynchronous)。

同步模式:就是后一个任务等待前一个任务结束,然后再执行,程序的执行顺序与任务的排列顺序是一致的、同步的。

异步模式:
每一个任务有一个或多个回调函数(callback),前一个任务结束后,不是执行后一个任务,而是执行回调函数,
后一个任务则是不等前一个任务结束就执行,所以程序的执行顺序与任务的排列顺序是不一致的、异步的,
在浏览器端,耗时很长的操作都应该异步执行,避免浏览器失去响应,最好的例子就是Ajax操作。
在服务器端,异步模式甚至是唯一的模式,因为执行环境是单线程的,如果允许同步执行所有http请求,服务器性能会急剧下降。

标签:异步,同步,JavaScript,模式,任务,执行
From: https://www.cnblogs.com/longmo666/p/18284606

相关文章

  • 状态模式的精髓是什么
    状态模式(StatePattern)的精髓在于将对象的行为包装在状态对象中,并通过状态对象改变对象的行为。它允许对象在内部状态改变时改变其行为,使得对象看起来好像修改了其类。核心思想状态封装:将不同状态下的行为封装到不同的状态类中,避免了大量的条件语句(如if或switch)。状......
  • 如何启动一个 server 模式的 h2 数据库
    要启动一个server模式的H2数据库,可以按照以下步骤操作:准备工作下载H2数据库:首先,您需要从H2数据库的官方网站下载H2数据库的JAR文件。访问H2DatabaseEngine并下载最新版本的h2-x.x.x.jar文件。Java环境:确保您的计算机上安装了Java环境(JRE或JDK),并配......
  • 设计模式-设计原则与设计模式总结
    设计原则,是设计模式的基础。在实际开发中,并不是一定要求所有代码都遵循设计原则,我们需要综合考虑人力、时间、成本、质量,不是可以追求完美,要在设当的场景遵循合适的设计原则,体现的是一种平衡取舍,帮助我们设计出更加优雅的代码结构。设计模式(DesignPattern)是前辈们经过相当长的......
  • 设计模式-访问者模式
    访问者模式访问者模式(VisitorPattern)是一种将数据结构与数据操作分离的设计模式,是指封装一些作用于某种数据结构中的各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作,属于行为型模式。访问者模式被称为最复杂的设计模式,但是使用率不高。不过,一旦你需要......
  • 【设计模式(三)】创建型模式--单例模式
    创建型模式的主要关注点是“怎样创建对象?”,它的主要特点是“将对象的创建与使用分离”。这样可以降低系统的耦合度,使用者不需要关注对象的创建细节。饿汉式类加载就会导致该单实例对象被创建/***饿汉式*静态变量创建类的对象*/publicclassSingleton{//......
  • 详解五种Docker容器的网络模式
    Docker网络设置了容器如何与其他容器和外部服务通信。为了获得网络访问,容器需要是Docker网络的一部分。容器可以通信的方式取决于它的网络连接。Docker提供了五种标准网络模式来执行核心网络功能:Bridge(桥接)Host(主机)Overlay(重叠)IPvLANMacvl......
  • STM32 低功耗模式 睡眠、停止和待机 详解
    STM32提供了三种低功耗模式,分别是睡眠模式(SleepMode)、停止模式(StopMode)和待机模式(StandbyMode),我们在做一些电池供电项目的时候,低功耗模式显得尤为重要。模式名称进入唤醒唤醒后位置对1.2V域时钟的影响对VDD域时钟的影响功耗睡眠模式WFI任意中断睡眠位置开始执行CPU/CLK......
  • 报名参课 | 解锁 Serverless+AI 新模式,拥有专属AIGC环境
    如今,Serverless被越来越多的企业所接受,并应用于业务实践中。科技的每一次进步都在更新着我们的工作模式,除了互联网企业最早“尝鲜”之外,传统企业也在探索大规模使用Serverless。越来越多人迈过了对Serverless技术的初级认知阶段,走向了落地实践。Serverless和AI大模型都是......
  • 设计模式实现思路介绍
    设计模式是在软件工程中用于解决特定问题的典型解决方案。它们是在多年的软件开发实践中总结出来的,并且因其重用性、通用性和高效性而被广泛接受。设计模式通常被分为三种主要类型:创建型、结构型和行为型。创建型设计模式创建型设计模式专注于如何创建对象,以确保系统在创......
  • flink提交yarn 集群模式失败
    flink版本1.14.6在通过./bin/flinkrun-application-tyarn-application模式提交到yarn时失败。报错信息:点击查看代码Causedby:java.lang.ClassCastException:cannotassigninstanceoforg.apache.kafka.clients.consumer.OffsetResetStrategytofieldorg.apache.......