AJAX Загрузка нескольких файлов параллельно - PullRequest
4 голосов
/ 18 ноября 2011

Есть эта функция:

function uploadFile(f, parent) {

    var xhr = new XMLHttpRequest();

    xhr.upload.addEventListener("progress", function (event) { uploadProgress(event, parent); }, false);
    xhr.upload.addEventListener("load", function (event) { uploadComplete(event, parent); }, false);
    xhr.upload.addEventListener("error", uploadFailed, false);
    xhr.upload.addEventListener("abort", uploadCanceled, false);

    xhr.open("POST", "Upload.aspx", true);
    //xhr.setRequestHeader("Cache-Control", "no-cache");
    xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
    xhr.setRequestHeader("Content-Type", "multipart/form-data");
    xhr.setRequestHeader("X-File-Name", f.name);
    xhr.setRequestHeader("X-File-Size", f.fileSize);
    xhr.send(f); 
}

Параметр "f" функции - это файл, который появляется в событии удаления (event.dataTransfer.files [0]) Проблема в том, что у меня есть несколько элементов, которые запускают событие drop (и неявно вызывается функция uploadFile), но загрузка не выполняется параллельно. Сначала загружается первый удаленный файл, и после завершения загрузки только затем загружается второй файл. Почему файлы не загружаются параллельно?

Спасибо!

1 Ответ

1 голос
/ 18 ноября 2011

Это делается с помощью клиентского скрипта, который по определению является однопоточным - по одному в природе.

...