0

我正在尝试创建一组function(如下面的 App 对象),它们接受 preInit、Init、Load 函数并按顺序执行它们。例如:

var formOperation = App.preInit(function(){
//Some Code ...
})
.init(function(){
//Some Code Here...
})
.load(function(){
//Other Code Here...
});

问题是我根本不希望用户处理 Deferred 对象,我希望他们使用尽可能多的对象ajax calls。我不希望他们使用扩展为jQuery like ajaxQueue.

我能想到的唯一方法是$.ajax calls在调用它们之前获取它们的列表并在其中设置 Deferred 对象。

您知道如何在调用函数之前获取ajax callsin的列表吗?function或者你有什么其他建议吗?

4

1 回答 1

0

好吧,我想我已经找到了解决方案。$.ajaxSetup()有一个东西叫它beforeSend有延迟的对象传递给它!我可以创建一个数组并将延迟对象添加到其中。

var ajaxCalls = [{}];
        $.ajaxSetup($.ajaxSettings, {
            beforeSend: function (deferred) {

                ajaxCalls.push(deferred);
            },
            complete: function (xhr, textStatus) {
                if (ajaxCalls.length == 1) {
                    //Do Something...
                }
            }
        });
于 2013-04-22T04:49:57.277 回答