关于ajax异步请求

来源:互联网 发布:anaconda python教程 编辑:程序博客网 时间:2024/06/06 01:32

将近大半个月的时间终于快要理顺公司的项目,具体涉及到ajax异步请求、图片加载、数据绑定、表单提交。今天就先说一说ajax异步请求。

请求并不难,难的是当请求较多且有关联的时候,初始化成了问题。一般不想等所有的ajax请求结束在初始化,这是很笨的做法。

ps:jequry已经封装好了XMLHttpRequest对象,所以不用写原生js代码进行ajax请求啦。

$.ajax({      async:true,  //async属性值为boolean,默认为true表示异步:即不等请求完成即执行func2了,反之false为同步    type:"POST",     url:"Venue.aspx?act=init",     dataType:"html",     success:function(result){  //function1()       f1();        f2();      }     failure:function (result) {        alert('Failed');       },  }  function2();

以上是一段常规的ajax请求。

jquery中关于ajax有个ajaxStop的方法,表示当完所有ajax请求时,执行函数体。有stop方法当然也有start方法,请自行查阅文档。

$("body").ajaxStop(function(){    alert("所有 AJAX 请求已完成");//函数体})

无疑上述方法特别的蠢,容易造成阻塞,甚至当某一ajax请求出错时,导致函数体无法执行。

幸运的是,.ajax中success中的函数f1()、f2()执行顺序是同步的。表示请求完成时顺序执行。因此可以把需要借助请求数据初始化的函数体放在success中。






原创粉丝点击