gpt4 book ai didi

javascript - 触发成功处理程序已完成执行,带有嵌套的 ajax 请求

转载 作者:行者123 更新时间:2023-11-29 18:28:50 25 4
gpt4 key购买 nike

我有很多嵌套的 ajax 请求,如下所示。我在下面的成功功能中进行了很多事情,我需要类似成功的东西,它会在成功完成时触发complete(jqXHR, textStatus) 似乎是 success 而我不认为 .ajaxComplete()有效。

$.ajax({
url: 'api/periods.json',
dataType: 'json',
success: function (d1) {
//more nested ajax requests
},
});

解决方案:

名为 $.fajax()$.ajax() 替换插件已创建(已完成 + ajax)。请检查一下,让我知道您的想法。 https://github.com/reggi/fajax (它有很好的记录)。

最佳答案

您可以为 jQuery.ajax 创建一个包装器函数以使其更简洁:

var started = 0, done = 0;
var globalHandler = function(){
//do stuff when all success handlers are done
}
function handleAjax(args){
var _success = args.success || function(){};
args.success = function(jqXHR, textStatus){
_success(jqXHR, textStatus);
done++;
if(done >= started)
globalHandler();
}
var ajax = $.ajax(args);
started++;
return ajax;
}

用法

handleAjax({
url: 'api/periods.json',
dataType: 'json',
success: function (d1) {
//more nested ajax requests like this:
handleAjax({...});
}
});

这会创建一个闭包,所以不要在那里做任何疯狂的内存密集型操作,你应该没问题。

关于javascript - 触发成功处理程序已完成执行,带有嵌套的 ajax 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10344136/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com