嗨我正在做一个JavaScript脚本,现在越来越难编辑,并很难理解其他人,我会把它放在这里希望有人能够理解它并给一些建议或者帮助需要循环取决于一个条件javascript
function fetchMember(id, select, sitename, total) {
return function() {
progress();
$.ajax({
type: 'POST',
url: "script.php",
data: $("#fetch").serialize() + "&id=" + id,
success: function(data) {
isUser = ($(data).text().indexOf("Invalid User") == -1);
if (isUser) {
username = $(data).find(".normal").text();
saved = id - invalid;
$.ajax({
type: 'POST',
url: "save.php",
data: {'username': username},
success: function(data) {
$("#test").append(id+" "+data + "<br />");
select.text(sitename+"("+saved+"/"+total+")"); //Updating numbers of fetched profiles on the frontend
}
});
}
else
invalid++; //loop again here because a user wan't valid
progress();
}
});
}
}
for (i = 0; i < members; i++) {
fetched++;
setTimeout(fetchMember(fetched, select, sitename, total), wait*i);
}
基本上是我需要做的是循环再如果在操作结束时也有一些非法用户,任何帮助非常感谢
小建议 - 您可以将所有这些匿名函数分隔为命名函数。另外,“done-fail-always”回调看起来更漂亮,更短,请参阅jQuery AJAX官方文档。它会使你的代码嵌套更少,更易于理解。 – 2014-08-29 13:53:07
什么是'progress()'?那个'setTimeout'有什么好处? '无效++'如何触发另一个循环?或者是你有什么问题 - 如果是的话,应该重复什么功能? – Bergi 2014-08-29 13:54:27
@Bergi progress()只是一个动画进度条的功能,如果你愿意,我可以把它放在这里,seTimeout需要在ajax连接之间放置一个800ms的间隔(要有响应)或者甚至超过800ms如果由用户设置。无效的++是跟踪脚本找到了多少无效用户,我想我需要重复fetchmember函数,具体取决于有多少用户无效。我希望我已经清楚了,谢谢你的帮助 – 2014-08-29 14:01:57