本文主要介绍Ajax在for循环中,请求只返回一次结果的问题解决。
一、async决定了同步与异步请求
1.1 Ajax默认是异步请求,会继续执行Ajax后面的脚本,直到服务器端返回数据后,触发Ajax里的success方法,这时候执行的是多个线程,其根源是async属性默认是 true。
1.2 async 设置为 false,则所有的请求均为同步请求,在没有返回值之前,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。
二、枚举代码
2.1 app.js封装ajax请求
ajax: function(option) {
ajaxCount++;
var _ajaxCount = ajaxCount,
return $.ajax({
type: option.type || "POST",
url: app.getItem(app.localKey.url) + option.url, // 请求的url
timeout: option.timeout || app.timeout, // 超时
async: option.async || false, // 同步异步控制
dataType: "json", // 参数