`

jquery中$.Ajax()async和success在异步处理

 
阅读更多

这里首先引用$.Ajax()中 async 和success的官方的解释:

async
Boolean Default: true
By default, all requests are sent asynchronous (e.g. this is set to true by default). If you need synchronous requests, set this option to false. Note that synchronous requests may temporarily lock the browser, disabling any actions while the request is active.

 

 

 

 

 

success
Function  

A function to be called if the request succeeds. The function gets passed two arguments: The data returned from the server, formatted according to the 'dataType' parameter, and a string describing the status. This is an Ajax Event.

 

在这里,async默认的设置值为true,这种情况为异步方式,就是说当ajax发送请求后,在等待server端返回的这个过程中,前台会继续 执行ajax块后面的脚本,直到server端返回正确的结果才会去执行success,也就是说这时候执行的是两个线程,ajax块发出请求后一个线程 和ajax块后面的脚本(另一个线程)例:

[javascript] view plaincopy
  1. $.ajax({   
  2.            type:"POST",  
  3.            url:"Venue.aspx?act=init",  
  4.            dataType:"html",  
  5.            success:function(result){   //function1()  
  6.               f1();  
  7.               f2();  
  8.            }  
  9.             failure:function (result) {   
  10.                alert('Failed');   
  11.            },  
  12.    }  
  13.   function2();  
 

在上例中,当ajax块发出请求后,他将停留function1(),等待server端的返回,但同时(在这个等待过程中),前台会去执行function2(),也就是说,在这个时候出现两个线程,我们这里暂且说为function1() 和function2()。

          当把asyn设为false时,这时ajax的请求时同步的,也就是说,这个时候ajax块发出请求后,他会等待在function1()这个地方,不会去执行function2(),知道function1()部分执行完毕。

          注:success中的方法f1(),f2()一般(即f1(),f2()不包括ajax块时)不会异步执行,就是说f2的执行是以f1()为前提的。

分享到:
评论

相关推荐

    基于jquery的$.ajax async使用

    $.ajax({ async: false, type : “POST”, url : defaultPostData.url, dataType : ‘json’, success : function(data) { temp=data; } }); alert(temp); 这个ajax请求则为同步请求,在没有返回值之前,...

    jQuery中的ajax async同步和异步详解

    $.ajax({ type: "post", url: "admin/PfmOptionRuleItem.do", success: function(data){ $("#ruleItem").val(data.ruleItem); //① } }); return $("#ruleItem").val(); //② 如果①还未从后台返回数据 此时执行②就...

    jquery ajax属性async(同步异步)示例

    blank”>jquery ajax同步方式 代码如下:$.ajax({url : ‘test.php’,type : ‘post’,async: false,//使用同步的方式,true为异步方式data : {‘act’:’addvideo’, ‘videoname’:videoname},//这里使用json对象...

    浅析jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法

    在调用一个jquery的ajax方法时我们有时会需要该方法返回一个值或者给某个全局变量赋值,可是我们发现程序执行完后并没有获取到我们想要的值,这时很有可能是因为你用的是ajax的异步调用async:true(默认情况),如: ...

    简述jQuery ajax的执行顺序

    jQuery中的Ajax的async默认是true(异步请求),如果想一个Ajax执行完后再执行另一个Ajax, 需要把async=false即可. 代码如下: function TestAjax() { var UserName = $(#txtUserName).val(); $.ajax({ url:...

    JQuery实现ajax请求的示例和注意事项

    $.ajax({ url: ctx +"/meeting/getMeetingRoomMap", //请求后台地址 type:"get", //请求方式 cache:false, //控制是否缓存数据(post请求默认false,而get请求会为true,容易造成页面数据缓存问题) async:false,...

    jquery电子文档chm

    $.ajax() takes one argument, an object of key/value pairs, that are used to initialize and handle the request. See below for a full list of the key/values that can be used. As of jQuery 1.2, you can...

    jquery-1.1.3 效率提高800%

    如果还需要设置error和success回调函数,则需要使用$.ajax。 实例 请求test.php页,忽略返回值. $.get("test.php");请求test.php页并发送附加数据(忽略返回值). $.get("test.php", { name: "John", ...

    JQuery ajax中error返回错误及一直返回error的解答

     Jquery中的Ajax的async默认是true(异步请求),如果想一个Ajax执行完后再执行另一个Ajax, 需要把async=false就可以了  于时我在ajax中进行了处理  async: false,结果发现提交正常的数据返回是正常的没有错误。  ...

    浅谈Jquery中Ajax异步请求中的async参数的作用

    之前不知道这个参数的作用,上网找了前辈的博客,在此收录到自己的博客,... $.ajax({ async: false, type : "GET", url : 'tet.php', complete: function(msg){ alert('complete'); }, success : fu

    JQuery中使用Ajax赋值给全局变量异常的解决方法

    方法1:先设置同步在进行Ajax操作 代码如下://在全局或某个需要的函数内设置Ajax异步为false,也就是同步$.ajaxSetup({ async : false });  //然后再进行你的Ajax操作$.post(地址, 参数, function(data, status) {...

    jquery插件使用方法大全

    例如,使用了新的jQuery内部Ajax API就可以实现下面的代码了: // Assign handlers immediately after making the request, // and remember the jxhr object for this request var jxhr = $.ajax({ url: "example....

    JQuery中使用Ajax赋值给全局变量失败异常的解决方法

    我们在用JQuery的Ajax从后台提取数据后想把它赋值给全局变量,但是却怎么都赋不进,为什么呢? 原因其实很简单,我们用的Ajax是异步操作,也就是说在你赋值的时候数据还没提取出来,你当然赋不进去,所以只要改成...

    jquery中的ajax如何返回结果而非回调方式即为同顺序执行

    因为默认ajax是异步的,也就是在未响应到结果时不影响向下的执行。... $.ajax({ type : “get”, async:false, dataType:”json”, url : url, data: params, success : function(data){ outdata = data; },

    一文快速了解JQuery中的AJAX

    $.ajax({ url:"http://www.microsoft.com", //请求的url地址 dataType:"json", //返回格式为json async:true,//请求是否异步,默认为异步,这也是ajax重要特性 data:{"id":"value"}, //参数值 type:"GET", //...

    ajax经典怎样传输数据

    ajax经典怎样传输数据,$.ajax({ async: true, // 默认true(异步请求) cache: true, // 默认true,设置为 false 将不会从浏览器缓存中加载请求信息。 type: "POST", // 默认:GET 请求方式:[POST/GET] dataType: ...

    探讨在JQuery和Js中,如何让ajax执行完后再继续往下执行

    代码如下: $.ajax ({ cache: false, async: false, // 太关键了,学习了,同步和异步的参数 dataType: ‘json’, type: ‘post’, url: “../handle/Ladder_Fee_Code.ashx?ajaxaction=Select_FangAn”, ...

    详解jQuery同步Ajax带来的UI线程阻塞问题及解决办法

    俗话说不作死就不会死,今天作死了一回,写了一个比较二逼的函数,遇到了同步Ajax引起的UI线程阻塞问题,在此记录一下。... $.ajax({ url : 'p.php', async : false, success: function(data){ resul

    Jquery ajax 同步阻塞引起的UI线程阻塞问题

    最近做一个项目,遇到了一个问题同步ajax引起的ui线程阻塞问题,下面把我的问题解决过程分享给大家。 事情起因是这样的,因为... $.ajax({ url : "p.php", async : false, success: function(data){ result = data;

    ajaxFileUpload.js

    使用demo:$.ajaxFileUpload({ url : "admin/user/saveInfo?r="+Math.random(), data : {"id":$("#id").val(), "nickName":$("#nickName").val(), "phone":$("#phone").val(), "email":$("#email").val() }, ...

Global site tag (gtag.js) - Google Analytics