我使用Ajax调用更新多个站点,逐个保存服务器。
我创建了一个递归函数,在Ajax调用完成后再次运行。
第一次循环后该功能停止。
有什么想法吗?
var updateSite = function (site) {
if (site.status == 'waiting for update') {
updateStatus(i, site, 'update in progress');
$.get(site.url)
.success(function () {
updateStatus(i, site, 'updated');
})
.error(function () {
updateStatus(i, site, 'not updated');
})
.complete(function () {
updateSite(allSites[i++]);
});
}
};
var i = 0;
updateSite(allSites[i]);
答案 0 :(得分:5)
更改完整功能如下:
function () {
updateSite(allSites[++i]);
}
答案 1 :(得分:0)
有错误消息吗?
当定义用于完成的匿名函数时,可能尚未定义var updateSite
。
试试这个:
var updateSite;
updateSite = function (site) {
if (site.status == 'waiting for update') {
updateStatus(i, site, 'update in progress');
.... // everything else the same...