AJAX中根据async的值不同分为同步(async = false)和异步(async = true)两种执行方式;在W3C的教程中推荐使用异步执行;

下面来区别一下同步和异步有什么不同:

异步:在异步模式下,当我们使用AJAX发送完请求后,可能还有代码需要执行。这个时候可能由于种种原因导致服务器还没有响应我们的请求,但是因为我们采用了异步执行方式,所有包含AJAX请求代码的函数中的剩余代码将继续执行。如果我们是将请求结果交由另外一个JS函数去处理的,那么,这个时候就好比两条线程同时执行一样。

同步:在同步模式下,当我们使用AJAX发送完请求后,后续还有代码需要执行,我们同样将服务器响应交由另一个JS函数去处理,但是这时的代码执行情况是:在服务器没有响应或者处理响应结果的JS函数还没有处理完成return时,包含请求代码的函数的剩余代码是不能够执行的。就好比单线程一样,请求发出后就进入阻塞状态,知道接触阻塞余下的代码才会继续执行。

如何选择同步还是异步模式?要回答这一问题,我们可以通过下面可能出现的问题来回答:

我们在发送AJAX请求后,还需要继续处理服务器的响应结果,如果这时我们使用异步请求模式同时未将结果的处理交由另一个JS函数进行处理。这时就有可能发生这种情况:异步请求的响应还没有到达,函数已经执行完了return语句了,这时将导致return的结果为空字符串。

java异步日志跟同步区别_AJAX中同步和异步的区别和使用场景相关推荐

  1. 阿里技术专家加多:Java异步编程实战之基于JDK中的Future实现异步编程 | 文末赠书...

    正文共:14244 字 8 图 预计阅读时间: 36 分钟 本节内容摘自<Java异步编程实战>中的一小节. 一.前言 本节主要讲解如何使用JDK中的Future实现异步编程,这包含如何使 ...

  2. Java高并发编程:使用JDK5中同步技术的3个面试题

    第一题: 现有的程序代码模拟产生了16个日志对象,并且需要运行16秒才能打印完这些日志,请在程序中增加4个线程去调用parseLog()方法来分头打印这16个日志对象,程序只需要运行4秒即可打印完这些 ...

  3. 阿里技术专家加多:Java异步编程实战之基于JDK中的Future实现异步编程

    正文共:14244 字 8 图 预计阅读时间: 36 分钟 本节内容摘自<Java异步编程实战>中的一小节. 一.前言 本节主要讲解如何使用JDK中的Future实现异步编程,这包含如何使 ...

  4. java mod %区别_Java中 % 与Math.floorMod() 区别详解

    %为取余(rem),Math.floorMod()为取模(mod) 取余取模有什么区别呢? 对于整型数a,b来说,取模运算或者取余运算的方法都是: 1.求 整数商: c = a/b; 2.计算模或者余 ...

  5. java同步和异步的区别_java中同步与异步区别是什么

    一.同步与异步概念:(推荐:java视频教程) 1.同步:所有的操作都做完,才返回给用户.这样用户在线等待的时间太长,给用户一种卡死了的感觉(就是系统迁移中,点击了迁移,界面就不动了,但是程序还在执行 ...

  6. java同步和异步的区别_java中同步与异步的区别是什么?表现在哪里?

    上次已经为大家介绍过java多线程的同步与异步,为大家详细分析了这两者的基本概念,今天再来详细的解析一下这两者之间的区别,并且它们的表现也是不同的,一起来了解一下吧. 首先,他们最大的区别是,同步需要 ...

  7. java slf4j日志级别_java - 在slf4j中设置运行时消息的日志级别 - 堆栈内存溢出

    ===============>>#1 票数:41 已采纳 使用slf4j无法做到这slf4j . 我想,缺少这个功能的原因是,几乎不可能为slf4j构建一个Level类型,它可以有效地映 ...

  8. java null和 的区别_java中null和的区别

    null和""的区别 问题一: null和""的区别 String s=null; string.trim()就会抛出为空的exception String s ...

  9. java mod 函数的使用方法_Java中 % 与Math.floorMod() 区别详解

    %为取余(rem),Math.floorMod()为取模(mod) 取余取模有什么区别呢? 对于整型数a,b来说,取模运算或者取余运算的方法都是: 1.求 整数商: c = a/b; 2.计算模或者余 ...

最新文章

  1. Class Activation Mapping (CNN可视化) Python示例
  2. Postman: Test
  3. 原生js实现ajax
  4. C++面试题:list和vector有什么区别?
  5. 转行程序员深漂的这三年 #2
  6. 台达A2/B2伺服电机编码器改功率 台达A2/B2伺服电机编码修改
  7. 多线程下载辅助类实现
  8. python之使用pyaudio录音和格式转化
  9. win10怎样更改系统字体_掌阅F1系统设置及字体更改、水墨屏阅读软件、打卡必备软件...
  10. BoundsChecker下载
  11. 《电路》邱关源 思维导图 第二章 电阻电路的等效变换
  12. PUBG绿色玩家 看过来!
  13. tiny服务器系列,温州中学TinyWebDB服务器正式启用
  14. 计算机无法进入桌面怎么备份,系统崩溃无法启动如何从pe进入系统备份C盘和桌面重要文件...
  15. 硬盘分类(HDD、HHD、SSD)简介
  16. sergsawegfresrgerg
  17. 多线程——主线程和子线程退出关系
  18. Linux下CA证书服务配置
  19. Ouya全访问计划,Chrome上的Mario Paint等
  20. 2019年美联储加息若放缓有何影响?外汇局回应

热门文章

  1. AMPLEXOR任命Allison McDougall担任销售副总裁
  2. 列[NEW_PWD]长度超出定义
  3. 动态核查:第三方检测机构信息化管理的重要性
  4. 缺陷检查需要了解的记录
  5. http协议和websocket协议
  6. 广度优先搜索[新手易懂]
  7. JavaScript基础细讲
  8. liquibase mysql_liquibase使用教程
  9. Mac系统 pycocotools安装
  10. js构造函数的实例成员和静态成员