欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

关于ajax异步请求

程序员文章站 2024-01-24 09:21:58
...

将近大半个月的时间终于快要理顺公司的项目,具体涉及到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中。