Metoda: function handleFiles(files): function handleFiles(files) { ___files = [...files]; __for (var i = 0; i < files.length; i++) { ______var id = makeid(10); ______previewFile(files[i], id); ______uploadFile(files[i], id, i); __} }
Najpierw powinna dodać do html obrazek, a następnie wykonać uploadFile, gdzie w odpowiedzi od serwera dodawany jest napis pod obrazkiem. Problem z tym, że jak wybiore np. 500 plików, to do pierwszego się nie dodaje napis (bo w applyResults wykrywa, że document.getElementById(id).innerText jest nullem, pomimo tego, że widzę w html, że id istnieje).
Tak jakby z jakiegoś powodu dla pierwszego elementu najpierw było wywoływane uploadFile a potem previewFile.
Problem występuje tylko, gdy dodam bardzo dużo plików na raz. Gdy dodam ich np. 50 to wszystko działa ok.
W prosty sposób rozwiązałem to tak: var fig = document.getElementById(id); if (fig === null) { __setTimeout(function () { ______document.getElementById(id).innerText = value; __}, 1000); } else { ___fig.innerText = value; }
Metoda: function handleFiles(files):
function handleFiles(files) {
___files = [...files];
__for (var i = 0; i < files.length; i++) {
______var id = makeid(10);
______previewFile(files[i], id);
______uploadFile(files[i], id, i);
__}
}
Najpierw powinna dodać do html obrazek, a następnie wykonać uploadFile, gdzie w odpowiedzi od serwera dodawany jest napis pod obrazkiem. Problem z tym, że jak wybiore np. 500 plików, to do pierwszego się nie dodaje napis (bo w applyResults wykrywa, że document.getElementById(id).innerText jest nullem, pomimo tego, że widzę w html, że id istnieje).
Tak jakby z jakiegoś powodu dla pierwszego elementu najpierw było wywoływane uploadFile a potem previewFile.
Problem występuje tylko, gdy dodam bardzo dużo plików na raz. Gdy dodam ich np. 50 to wszystko działa ok.
W prosty sposób rozwiązałem to tak:
var fig = document.getElementById(id);
if (fig === null) {
__setTimeout(function () {
______document.getElementById(id).innerText = value;
__}, 1000);
} else {
___fig.innerText = value;
}
Jest na to jakieś lepsze rozwiązanie?
#programista15k #naukaprogramowania #javascript