0

我正在从浏览器向服务发出一堆 ajax 调用,我希望通过不一次发送所有这些来对服务器友好。是否有一种标准模式用于序列化事件列表的触发,以便下一个事件在最后一个事件完成之前不会触发?

4

2 回答 2

2

我认为使用延迟对象链接异步回调的 jQuery.whenSync() 插件可以帮助您对 AJAX 调用进行排队。

于 2012-10-11T00:43:24.733 回答
0

我现在用我的一个应用程序来做这件事。基本上我有一个数组来存储我所有的 ajax 调用参数。在回调中,我传递下一个增量,直到不再有。这是一个通用示例(您当然可以使用 ajax 或 get,这就是我的做法:

var params = [
{url : 'someurl', data : 'somedata', callback : doSomething},
{url : 'anotherurl', data : 'moredata'}
],
process = function(i) {

    if (i < params.length) {  

        var item = params[i];     

        // Navigate to first view trainee screen
        $.post(
            item.url,
            item.data,
            function(data) {
                // Could test for function, etc but this is how I do it
                try {
                     item.callback(data);
                } catch (e) {}

                process(++i);
            }
         );

    }
};


process(0);
于 2012-10-11T00:21:52.413 回答