Hallo Martin,
das deutet stark darauf hin, dass du die Requests nicht sauber sequentiell absetzt, sondern zeitlich überlappend. Also den nächsten Request schon sendest, bevor die Response vom aktuellen komplett übertragen ist.
Ja, das schien mir in einigen Testdurchläufen wirklich so zu sein. Deshalb hab ich im PHP-Upload-Script nach dem Durchlaufen der Schleife mit move_uploaded_file() am Ende ein echo "ok" angehangen, um sicherzugehen, dass das Script fertig ist. Auch das JS hatte ich jetzt noch einmal umgebaut und frage dort explizit nach dem "ok":
(async function() {
let response = await fetch("sql/galerie_upload.php", {
method: "POST",
body: formData
});
if(response.ok) {
const meldung = await response.text();
if(meldung == "ok") {
...
// fetch() neu starten
paket_senden(paket_index+1);
}
}
})();
Die jeweils nächste galerie_upload.php wird laut Netzwerkanalyse erst neu gestartet, wenn aus dem vorherigen Request das "ok" zurückkommt. Muss ich explizit noch etwas tun, um die Verbindung zum Server zu trennen oder ähnliches?
In der Netzwerkanalyse wird hinter galerie_upload.php übrigens eine putzige Schildkröte angezeigt: "Langsame Serverantwortzeit (4,32 s). Das empfohlene Limit beträgt 500 ms."
Schöne Grüße
Nico