zoukankan      html  css  js  c++  java
  • async: false 实现AJAX同步请求 ( $.ajax同步/异步(async:false/true) )

    虽然说ajax用来执行异步请求的比较多,但有时还是存在需要同步执行的情况的。

    比如:我需要通过ajax取执行请求以返回一个值,这个值在ajax后面是需要使用到的,这时就不能用异步请求了。这时候就需要使用到async这个属性了。

    async:true,(默认),异步方式,$.Ajax执行后,会继续执行ajax后面的脚本,直到服务器端返回数据后,触发$.Ajax里的success方法,这时候执行的是两个线程。

    async:false,同步方式,所有的请求均为同步请求,在没有返回值之前,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。

    例如:

    var temp;
    $.ajax({
       async: false,
       type : "POST",
       url : defaultPostData.url,
       dataType : 'json',
       success : function(data) {
          temp=data;
       }
    });
    alert(temp);
    

      

    这个ajax请求为同步请求,在没有返回值之前,alert(temp)是不会执行的。

    如果async设置为:true,则不会等待ajax请求返回的结果,会直接执行ajax后面的语句:alert(temp);

    个人理解:  同步请求的适用场景==你需要锁定浏览器窗口,让用户在请求未完成时不能进行任何操作。

  • 相关阅读:
    学习 | mockjs入门
    学习 | 基于require.js的三级联动菜单【入门】
    Android_百度地图基本用法5
    Android_百度地图基本用法4
    Android_百度地图基本用法3
    Android_百度地图基本用法2
    Android_百度地图基本用法1
    Android_Event Bus 的基本用法
    Kotlin基础-扩展
    Kotlin基础-泛型
  • 原文地址:https://www.cnblogs.com/xie-xiao-chao/p/8466674.html
Copyright © 2011-2022 走看看