我是javascript编程的新手,所以我在尝试编写脚本时遇到了问题。 我有一个textarea和一个调用函数的按钮" test()" 在textarea中,我将插入Links,我将使用AJAX发布每个链接并从回调中获得响应。
我可以通过使用jquery函数.each或for(i = 0; i
function test() {
document.getElementById("qitu").innerHTML = 'Checking Started...';
var mylines = $("#ti").val().split("\n");
for(i=0;i<mylines.length;i++) {
if(mylines[i] != "") {
$.ajax({
type: "POST",
url: "callback.php",
data: { checklink : mylines[i] },
beforeSend: function() {
document.getElementById("qitu").innerHTML = 'Checking ' + mylines[i];
},
success: function(data) {
var result = JSON.parse(data);
i++;
if(result.status == 'invalid') {
} else {
}
},
complete: function() {
document.getElementById("qitu").innerHTML = 'Checking is done';
}
});
}
}
}
那么有什么建议吗?
答案 0 :(得分:0)
好的,我通过调用函数on complete并继续下一行来修复此问题,方法是记录每次错误或成功后的行数
function other(n,b,g) {
document.getElementById("qitu").innerHTML = 'Checking Started...';
var mylines = $("#ti").val().split("\n");
var good = 0;
var bad = 0;
var i = 0;
var remaining = mylines.length;
if(mylines[n] != "") {
$.ajax({
type: "POST",
url: "class.uploader.php",
data: { mydata : mylines[n] },
beforeSend: function() {
// my loading function
},
success: function(data) {
var result = JSON.parse(data);
if(result.status == 'invalid') {
b++;
document.getElementById("bad").innerHTML = b;
} else {
g++;
document.getElementById("good").innerHTML = g;
document.getElementById("mythings").innerHTML += '<tr><td>' + result.thing + '</td><td>' + result.code + '</td></tr>';
}
},
complete: function() {
n++;
if(n < mylines.length) {
other(n,b,g);
}
remaining -= n;
document.getElementById("remaining").innerHTML = remaining;
if(remaining == 0) {
document.getElementById("qitu").innerHTML = 'Checking is done';
}
}
});
}
}
我从一个对此页面发表评论的人那里得到了这个想法,我希望这有助于某人。