Erkennung des Abschlusses des Dateidownloads verarbeiten
Problem:
Erkennen, wann ein Browser eine Datei vollständig empfängt Der dynamisch generierte Dateidownload ist für die Anzeige von Warteindikatoren von entscheidender Bedeutung. Derzeit kann dieses Problem aufgrund von Browser-Inkonsistenzen durch die Verwendung des „load“-Ereignisses eines Iframes nicht behoben werden.
Lösung 1: Browserbasierte Token-Verifizierung
Ein clientseitiges JavaScript Die Lösung umfasst:
Auf der Serverseite wird der Algorithmus:
Code-Snippet ( JavaScript):
function setFormToken() { var downloadToken = new Date().getTime(); document.getElementById("downloadToken").value = downloadToken; return downloadToken; }
Code-Snippet (PHP):
// Set a cookie to unblock submit button when download begins. $TOKEN = "downloadToken"; $this->setCookieToken($TOKEN, $_GET[$TOKEN]);
Lösung 2: Server-Polling
Alternativ beinhaltet ein serverseitiger Ansatz:
Diese Methode vermeidet die Erstellung temporärer Serverdateien. Während der Wartezeit ist jedoch eine Client-Server-Kommunikation erforderlich.
Vor- und Nachteile:
Die Verwendung eines Browser-Tokens ermöglicht eine dynamische Erkennung, kann jedoch zu Problemen mit der Browserkompatibilität führen . Serverabfragen sind eine zuverlässigere, aber langsamere Option.
Das obige ist der detaillierte Inhalt vonWie kann ich den Abschluss des Dateidownloads in einem Browser zuverlässig erkennen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!