Javascript 当一些函数有几个ajax调用时,按顺序执行几个js函数
我试图创建一组Javascript 当一些函数有几个ajax调用时,按顺序执行几个js函数,javascript,jquery,ajax,deferred,Javascript,Jquery,Ajax,Deferred,我试图创建一组函数(如下面的App object),它接受preInit、Init和Load函数,并按顺序执行它们。 例如: var formOperation = App.preInit(function(){ //Some Code ... }) .init(function(){ //Some Code Here... }) .load(function(){ //Other Code Here... }); 问题是,我根本不希望用户处理延迟对象,我希望他们使用尽可能多的ajax调用。我
函数
(如下面的App object),它接受preInit、Init和Load函数,并按顺序执行它们。
例如:
var formOperation = App.preInit(function(){
//Some Code ...
})
.init(function(){
//Some Code Here...
})
.load(function(){
//Other Code Here...
});
问题是,我根本不希望用户处理延迟对象,我希望他们使用尽可能多的ajax调用。我不希望他们使用像ajaxQueue那样扩展到jQuery的函数
我能想到的唯一方法是获取$.ajax调用的列表
,并在调用它们之前在其中设置延迟对象
在调用函数之前,您知道如何在函数中获取ajax调用的列表吗?
或者你还有其他建议吗?我想我已经找到了解决这个问题的办法$.ajaxSetup()
有一个名为beforeSend
的东西,它将延迟对象传递给它!我可以创建一个数组并向其中添加延迟对象
var ajaxCalls = [{}];
$.ajaxSetup($.ajaxSettings, {
beforeSend: function (deferred) {
ajaxCalls.push(deferred);
},
complete: function (xhr, textStatus) {
if (ajaxCalls.length == 1) {
//Do Something...
}
}
});
我认为没有任何方法(以编程方式)来判断作为参数传递给代码的函数是否对Ajax有用。即使您可以以某种方式检查该函数,它也可能调用其他函数,从而执行Ajax操作……我想我已经找到了一个解决方案。但问题是我不能把它作为一个答案。因为我今天问了这个问题$.ajaxSetup()
有一个名为beforeSend
的东西,它将延迟对象传递给它!我可以创建一个数组并向其中添加延迟对象。