精华内容
下载资源
问答
  • jquery中ajax方法有个属性async用于控制同步和异步,默认是true,即ajax请求默认是异步请求,有时项目中会用到AJAX同步。这个同步的意思是当JS代码加载到当前AJAX的时候会把页面里所有的代码停止加载,页面出现假死...
  • 深入理解AJAX系列第三篇--async属性值之同步和异步同步和异步区别

    AJAX中根据async的值不同分为同步(async = false)和异步(async = true)两种执行方式;这个async这个属性,用于控制请求数据的方式,默认是true,即默认以异步的方式请求数据。
    一、async值为false (同步)
    顺序处理,当执行当前AJAX的时候会停止执行后面的JS代码,直到AJAX执行完毕后时,才能继续执行后面的JS代码。

    var xhr = new createXHR();
    xhr.open( "get", "example.php", false );
    xhr.send( null );
    if( xhr.status == 200 ){
        alert( xhr.responseText );
    }

    二、async值为true(异步)
    并行处理,当我们向服务器发出一个请求时,在服务器没返回结果之前,我们还是可以执行其他操作。

    var xhr = createXHR();
    xhr.onreadystatechange = function(){
        if( xhr.readyState == 4 ){
            if( ( xhr.status >= 200 && xhr.status < 300  ) || xhr.status == 304 ){
                alert( xhr.responseText );
            }else{
                alert( "Request was unsuccessful:" + xhr.status );
            }
        }
    };
    xhr.open( "get", "example.php", true );
    xhr.send( null );

    在异步时才可以用xmlHttpReq.onreadystatechange状态值!同步的情况下,js会等待请求返回,获取status。不需要onreadystatechange事件处理函数。而异步则需要onreadystatechange事件处理,且值为4再正确处理内容。

    展开全文
  • js中的同步异步区别和理解

    千次阅读 2019-07-31 21:43:38
    js中的同步异步区别和理解 前端面试中很容易问到的问题就是同步异步的 <script> setTimeout(function() { console.log(1) }) console.log(2); </script> ...

    js中的同步和异步的区别和理解

    前端面试中很容易问到的问题就是同步和异步的,其实很多人潜意识是知道怎么用,也大概明白一些,但是就是不知道该怎么表达,怎么去描述这个问题。我们可以按这个思路来回答—why-what-how
    why(为什么):js是单线程的,只能处理完一件事再做另外一件事,但是设想如果前面一件事花费的时间特别长,我们就只能一直等着他,就会阻塞下面的进程,这样程序运行时间增长,就会降低用户体验。(这里可能有人会想到,如果js是多线程的,不就解决这个问题了,但是其实这是由他的主要功能决定的,他的功能是与用户互动,以及操作DOM,如果在同一个时间,一个进程创建了这个节点,另一个删除了这个节点,那就很尴尬了
    what(同步和异步是什么):
    同步:按照一定的顺序去执行,执行完一个才能执行下一个
    异步:执行顺序是不确定的,由触发条件决定,什么时间执行也是不确定的,即使是定时器(下面做解释),异步处理可以同时执行多个。

    下面看一个小小的异步的案例

    <script>
            setTimeout(function() {
                console.log(1)
            })
            console.log(2);
        </script>
        2 1
    

    上面得执行结果是先打印2,然后再打印1,(下面解释)
    如果想知道里面的原理,我们可以从js的执行机制入手:
    首先了解两个概念,同步任务和异步任务:
    同步任务:只有前一个任务执行完成后,才可执行下一个任务,在主线程中
    异步任务:这个队列的所有任务都是不进入主线程执行,进入任务队列,被浏览提供的线程执行,当执行完毕后就会产生一个回调函数,并且通知主线程,在主线程执行完当前所执行的任务后,就会调取最早通知自己的回调函数,使其进入主线程中执行,比如ajax请求,再主线程中呈现的就是请求结果~

    js的执行机制
    1、先判断是js代码是同步的还是异步的,同步的就是同步任务,直接进入主线程处理,异步的就进入任务列表
    2、当任务列表内的异步处理达到了触发条件时候(点击事件被点击时),就进入任务队列
    3、当所有的主线程的任务执行完毕之后,才会将任务队列里面的任务(回调函数)添加到主线程。

    这也就是为什么会先执行同步,再执行异步的原因,也就是先打印2,再打印1的原因
    另外也是因为先执行同步,那么如果同步执行时间太长或者出错,死循环,就不会处理异步里面的回调函数了(上面两个问题的解释)

    总结:js的异步处理是和浏览器一起作用的,js是单线程的,但是浏览器是多线程的。浏览器可以同时处理多个异步任务。但是这些异步任务中的回调函数还是在js的主线程中一个一个执行的。

    以上均是我个人的理解,仅供参考。
    以下是参考的一些博客,不是太理解的可以看看:
    鱼活在水中的博客:https://blog.csdn.net/qq_39480597/article/details/79662913;
    [阮一峰老师的博客]http://www.ruanyifeng.com/blog/2014/10/event-loop.html

    展开全文
  • JS同步和异步区别 js是一门单线程语言,所谓"单线程",就是指一次只能完成一件任务。如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务,以此类推。如果一个任务耗时过长,那么后面的任务就...
    1. JS中同步和异步的区别
      js是一门单线程语言,所谓"单线程",就是指一次只能完成一件任务。如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务,以此类推。如果一个任务耗时过长,那么后面的任务就必须一直等待下去,会拖延整个程序,常见浏览器无反应,可能就是一段代码死循环,造成程序卡住在这个位置,无法继续
      为了解决这个问题,js的执行模式分为两种:同步和异步。
      “同步模式"就是上一段的模式,后一个任务等待前一个任务结束,然后再执行,程序的执行顺序与任务的排列顺序是一致的、同步的;“异步模式"则完全不同,每一个任务有一个或多个回调函数(callback),前一个任务结束后,不是执行后一个任务,而是执行回调函数,后一个任务则是不等前一个任务结束就执行,所以程序的执行顺序与任务的排列顺序是不一致的、异步的。
      具体来说,异步运行机制如下:
      (1)所有同步任务都在主线程上执行,形成一个执行栈(execution context stack)。
      (2)主线程之外,还存在一个"任务队列”(task queue)。只要异步任务有了运行结果,就在"任务队列"之中放置一个事件。
      (3)一旦"执行栈"中的所有同步任务执行完毕,系统就会读取"任务队列”,看看里面有哪些事件。那些对应的异步任务,于是结束等待状态,进入执行栈,开始执行。
      (4)主线程不断重复上面的第三步。

    "异步模式"编程的4种方法
    1.回调函数
    2.事件监听,任务的执行不取决于代码的顺序,而取决于某个事件是否发生
    3.发布订阅模式,也叫观察者模式
    4.Promises对象

    最基础的异步是setTimeout和setInterval函数,很常见,但是很少人有人知道其实这就是异步,因为它们可以控制js的执行顺序

    作者:A落儿
    链接:(https://www.jianshu.com/p/9e93a854d6a5)
    来源:简书

    本文参考文章:
    (http://www.cnblogs.com/c3gen/p/6170504.html)
    (http://www.ruanyifeng.com/blog/2012/12/asynchronous%EF%BC%BFjavascript.html)

    展开全文
  • 详细解析JavaScript的Ajax之同步异步区别 博客整理到这里基本上JavaScript的初级知识就整理完了,现在我们来说一下看JavaScript的最后一个知识点——Ajax。 (Asynchronous Javascript And XML) 即异步 ...

    详细解析JavaScript的Ajax之同步异步的区别

    博客整理到这里基本上JavaScript的初级知识就整理完了,现在我们来说一下看JavaScript的最后一个知识点——Ajax

    (Asynchronous Javascript And XML) 即异步 JavaScript 和 XML,一种创建交互式、快速动态网页应用的网页开发技术,无需重新加载整个网页的情况下,能够更新部分网页的技术。

    1.同步和异步

    首先我们先来分析一下JavaScript的中的同步和异步的区别。

    同步就是调用某个内容时,调用方得等待这个调用返回结果才能继续往后执行。(期间不可以执行其他的命令)。如图:

    在这里插入图片描述

    异步,和同步相反调用方不用立即得到结果,而是在调用发出后调用者可用继续执行后续操作(期间可以执行其他命令)。如图:
    在这里插入图片描述

    总结: 所谓同步异步举个简单的例子,就类似于你叫我去吃饭,同步就是你不停的叫我,知道我回应你,一起去吃饭。异步是你叫完我之后无论我有没有回应你都去吃饭。所以如果想要省钱,你请我吃饭就用异步,想让我请你吃饭就用同步。当然实际开发中,如果加载大量的数据使用异步(百度图片列表,淘宝商品列表等),少量数据可以使用同步。

    展开全文
  • 对于ajax我们应该知道ajax是主要用来在前端页面中向服务器后端请求数据,ajax中根据async的值不同分为同步(async = false)和异步(async = true)两种执行方式,那么,ajax的同步和异步请求两种方式有什么区别呢?...
  • 同步和异步区别及优缺点

    万次阅读 多人点赞 2018-11-26 21:41:42
    学习编程,同步异步是必须要理解学习的知识点,同步和异步的区别和有确定往往都是相对的,各自有各自的使用场景,同步的优点往往就是异步的缺点,反过来亦然。
  • 同步异步同步异步代码执行规则获取返回值回调函数获取异步API返回值异步代码执行顺序回调函数控制异步代码执行顺序回调地狱promise透传Promise 值传递 同步 同步:只有当前API执行完成后,才能继续执行下一个API ...
  • 同步(Sync)发出一个功能调用时,必须一件一件事做,等前一件做完了才能做下一件事。异步(Async)当一个异步过程调用发出后...总结来说,同步和异步区别:请求发出后,是否需要等待结果,才能继续执行其他操作。 ...
  • 同步和异步关注的是消息通信机制 (synchronous communication/ asynchronous communication)。同步,就是调用某个东西是,调用方得等待这个调用返回结果才能继续往后执行。异步和同步相反 调用方不会理解得到结果...
  • js同步和异步区别 单线程是什么 我们常说“JavaScript是单线程的”。所谓单线程,就是指在JS引擎中负责解释执行JavaScript代码的线程只有一个,一次只能完成一件任务。如果有多个任务,就必须排队,前面一个任务...
  • 同步可以理解为一种线性的执行方式,在执行玩一段代码后,会一直等待系统放回消息或状态值,此时程序一直处于阻塞状态,直到系统...在js中实现异步的方式有ajaxh5新增的web worker。 使用web worker的限制: 1、...
  • ajax同步和异步区别

    千次阅读 2019-11-09 19:57:07
    本文从两个方面讲解了ajax同步和异步区别,一是从概念上区别,分4点讲解,二是从实际应用出发,分为2点讲解:异步访问的代码详细说明和同步访问的代码详细说明,当页面端提交后,整个页面是不能点击的,必须要等到...
  • JS同步和异步

    2019-09-05 20:17:35
    1、ajax(async javascript and xml)异步javascript xml javascript语言是一门“单线程”的语言,不像java语言,类继承Thread再来个thread.start就可以...同步和异步,无论如何,做事情的时候都是只有一条流...
  • Ajax同步和异步区别

    万次阅读 2018-01-12 16:10:06
    同步的意思是当JS代码加载到当前AJAX的时候会把页面里所有的代码停止加载,页面出去假死状态,当这个AJAX执 行完毕后才会继续运行其他代码页面假死状态解除。 而异步则这个AJAX代码运行中的时候其他代码一样可以...
  • 首先,不同于其他后端语言,javascript语言是单线程机制。所谓单线程就是按次序执行,执行完一个任务再执行下一个。 对于浏览器来说,也就是无法在渲染页面的同时执行代码。 同步是指一个线程要等待上一个线程执行...
  • 同步和异步区别

    万次阅读 多人点赞 2018-12-12 14:01:33
    异步,执行完函数或方法后,不必阻塞性地等待返回值或消息,只需要向系统委托一个异步过程,那么当系统接收到返回值或消息时,系统会自动触发委托的异步过程,从而完成一个完整的流程。  同步,就是实时处理(如打...
  • js中的同步和异步

    千次阅读 2018-04-08 10:16:56
    同步和异步区别是什么?分别举一个同步和异步的例子 一个关于setTimeout的笔试题 前端使用异步的场景有哪些 知识点: 什么是异步(对比同步) 前端使用异步的场景 异步和单线程 同步和异步区别? 是否...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 136,978
精华内容 54,791
关键字:

同步和异步的区别js