存在问题(回调地狱):
a b c d四个请求
a请求成功后开始b请求,b请求成功后开始c请求,c请求成功开始d请求
ajax(url,{},function(){
a请求
xxxxx
xx
xx
xxx
//开始b请求
ajax(url,{},function(){
b请求
xxx
xxx
xx
//开始c请求
...
})
});
通过promise(承诺)改造ajax
function ajax(url, options,success) {
var defaultJSON = {
method: "get",
data: "",
dataType:false
}
// 默认值处理
options = options ? options : {};
for (var key in options) {
defaultJSON[key] = options[key];
}
var xhr = null;
xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
var data = "";
if( defaultJSON.data ){
for( var key in defaultJSON.data ){
data += ""+key+"="+default
ajax回调函数嵌套使用存在问题(回调地狱): a b c d四个请求 a请求成功后开始b请求,b请求成功后开始c请求,c请求成功开始d请求 ajax(url,{},function(){ a请求 xxxxx xx xx xxx //开始b请求 ajax(url,{},function(){ b请求 xxx xxx xx //开...