There is this function:
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);
}
The parameter “f” of the function is a File that appears on the drop event (event.dataTransfer.files[0])
The problem is that i have multiple elements that fires the drop event (and implicitly the uploadFile function is called) but the upload is not done parallel. First is uploaded the first dropped file and after the upload is complete, only then the second file is uploaded. Why doesn’t the files upload parallel?
Thanks!
This is done using client side script which is by definition single threaded – one thing at a time, in nature.