Les petits fichiers se déroulent sans problème, même lorsque vous téléchargez simultanément 100 fichiers de 5 mégaoctets (bien qu'il ne gère que 5 fichiers à la fois), mais un fichier de 150 Mo bloque le navigateur plusieurs secondes pendant qu'il initie.Le téléchargement de gros fichiers entraîne le blocage du navigateur
function start(file) {
var xhr = new XMLHttpRequest();
++count;
var container = document.createElement("tr");
var line = document.createElement("td");
container.appendChild(line);
line.textContent = count + ".";
var filename = document.createElement("td");
container.appendChild(filename);
filename.textContent = file.fileName;
filename.className = "filename";
initXHREventTarget(xhr.upload, container);
var tbody = document.getElementById('tbody');
tbody.appendChild(container);
tbody.style.display = "";
var boundary = "xxxxxxxxx";
xhr.open("POST", "uploader.php");
xhr.setRequestHeader("Content-Type", "multipart/form-data, boundary="+boundary); // simulate a file MIME POST request.
xhr.setRequestHeader("Content-Length", file.size);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
if ((xhr.status >= 200 && xhr.status <= 200) || xhr.status == 304) {
if (xhr.responseText != "") {
alert(xhr.responseText); // display response.
}
}
}
}
var body = "--" + boundary + "\r\n";
body += "Content-Disposition: form-data; name='upload'; filename='" + file.fileName + "'\r\n";
body += "Content-Type: application/octet-stream\r\n\r\n";
body += $.base64Encode(file.getAsBinary()) + "\r\n";
body += "--" + boundary + "--";
xhr.sendAsBinary(body);
}
Cela ressemble à un comportement attendu à la lumière de ces énormes quantités de données, n'est-ce pas? Est-ce vraiment un problème? –
Donc, votre seule plainte est le navigateur se bloque lors de la récupération et l'envoi d'un gros fichier? –