Ja, es funktioniert mit diesem Snippet auf die Weise in bestimmten Fällen. Wenn du die Größe der Datei nicht angibst, ist kein Fortschritt zu lesen (Download startet anstelle der "xx von xx geladen"). Die Datei wird aber geladen. Das Problem ist aber weniger die fehlende Fortschritt-Anzeige (bei großen Files werden die Leute trotzdem durchdrehen und abbrechen).
Viel mehr sind folgende Punkte ein Problem:
- Die Datei kommt nicht komplett an (z.B. wird zu langsam geschrieben, aber zu schnell gelesen oder der eine Prozess kommt seltener an die Reihe als der andere)
- Irregulärer Name bei Zip-Files während der Erstellung
- Eventuell vorhandenes Mutex beim Erstellen eines Files, dass Zugriffe während des Schreibens auf die Datei nicht zulässt
- usw.
Davon abgesehen ist die Empfehlung der Nutzung "sleep" extrem schlecht. Immerhin sorgt es dafür, dass die maximale Laufzeit des Scripts erreicht wird, ohne das getan zu haben was es sollte. Eine Sekunde zu pausieren, ist schon ein enormer Wert. Ein usleep sollte reichen.
Dementsprechend muss man sich übrigens um die Laufzeit kümmern, die man entweder unlimitiert gestalten oder ständig um x Sekunden erhöhen muss.