jQuery Ajax / .each callback, next 'each' firing before ajax completed

Hi the below Javascript is called when I submit a form. It first splits a bunch of url's from a text area, it then:

1) Adds lines to a table for each url, and in the last column (the 'status' column) it says "Not Started".
2) Снова он перебирает каждый URL-адрес, сначала он выполняет вызов ajax для проверки статуса (status.php), который возвращает процент от 0 до 100.
3) В том же цикле он запускает фактический процесс через ajax (process.php), когда процесс завершается (с учетом непрерывных обновлений статуса), он затем скажет «Завершено» в столбце статуса и выйдет из auto_refresh.
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>");
          }
        });

    });

}
6
задан StuR 17 December 2010 в 10:54
поделиться