Sprint
Erfahrenes Mitglied
Hallo zusammen,
gestern hatte ich ein Thema zum automatischen Download im PHP Bereich, das letztendlich per JS gelöst werden konnte. Dabei wird dieses Script FileSaver.js verwendet.
Beim Testen mußte ich dann aber leider feststellen, daß nicht immer alle Dateien geladen werden. Ich vermute da ein Timingproblem mit dem Browser, weshalb ich dann ein Timeout von zwei Sekunden eingebaut habe. Daraufhin wurde es besser, aber es passiert immer noch, daß eine Datei übersprungen wird.
Merkwürdigerweise werden die Ergebnisse aber auch wieder schlechter, wenn ich die Zeit z.B. auf 5 Sekunden erhöhe. Andererseits habe ich aber auch den Eindruck, als ob nur bei der ersten Datei gewartet würde.
Zwei Sekunden sollten eigentlich reichen, da wir hier mit einer 250er Leitung arbeiten und die Dateigrößen überwiegend nur im Kilobyte Bereich liegen. Hat da jemand eine Idee dazu, wie es zu den Aussetzern kommen kann und ob man was dagegen machen kann?
gestern hatte ich ein Thema zum automatischen Download im PHP Bereich, das letztendlich per JS gelöst werden konnte. Dabei wird dieses Script FileSaver.js verwendet.
Beim Testen mußte ich dann aber leider feststellen, daß nicht immer alle Dateien geladen werden. Ich vermute da ein Timingproblem mit dem Browser, weshalb ich dann ein Timeout von zwei Sekunden eingebaut habe. Daraufhin wurde es besser, aber es passiert immer noch, daß eine Datei übersprungen wird.
Merkwürdigerweise werden die Ergebnisse aber auch wieder schlechter, wenn ich die Zeit z.B. auf 5 Sekunden erhöhe. Andererseits habe ich aber auch den Eindruck, als ob nur bei der ersten Datei gewartet würde.
Javascript:
function download_all(fileidx){
const files = [];
<?php
echo 'files[0] = '.json_encode($allfiles_files).";\r\n";
reset($npfiles_files);
foreach ($npfiles_files as $n => $npz)
echo 'files['.$n.'] = '.json_encode($npz).";\r\n";
?>
const path = '<?php echo $allfiles_pfad; ?>';
files[fileidx].forEach(file => {
setTimeout(function() {
download(path+file, file, {});
}, 2000);
});
}