嗨我正在做一個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