【发布时间】:2010-12-16 15:48:12
【问题描述】:
您好,当我提交表单时,会调用以下 Javascript。它首先从文本区域中拆分出一堆 url,然后:
1) 将行添加到每个 url 的表中,并在最后一列(“状态”列)中显示“未开始”。
2) 再次循环遍历每个 url,首先它进行 ajax 调用以检查状态 (status.php),该状态将返回 0 - 100 之间的百分比。
3) 在同一个循环中,它通过 ajax (process.php) 启动实际进程,当进程完成时(记住不断更新的状态),它会在状态列中显示“已完成”并退出自动刷新。
4) 然后它应该转到下一个“每个”并为下一个 url 做同样的事情。
function formSubmit(){
var lines = $('#urls').val().split('\n');
$.each(lines, function(key, value) {
$('#dlTable tr:last').after('<tr><td>'+value+'</td><td>Not Started</td></tr>');
});
$.each(lines, function(key, value) {
var auto_refresh = setInterval( function () {
$.ajax({
url: 'status.php',
success: function(data) {
$('#dlTable').find("tr").eq(key+1).children().last().replaceWith("<td>"+data+"</td>");
}
});
}, 1000);
$.ajax({
url: 'process.php?id='+value,
success: function(msg) {
clearInterval(auto_refresh);
$('#dlTable').find("tr").eq(key+1).children().last().replaceWith("<td>completed rip</td>");
}
});
});
}
【问题讨论】:
标签: javascript jquery ajax asynchronous each