Heim > Web-Frontend > js-Tutorial > Wie kann ich den Abschluss des Dateidownloads in einem Browser zuverlässig erkennen?

Wie kann ich den Abschluss des Dateidownloads in einem Browser zuverlässig erkennen?

Linda Hamilton
Freigeben: 2025-01-05 21:06:49
Original
453 Leute haben es durchsucht

How Can I Reliably Detect File Download Completion in a Browser?

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:

  • Generieren eines eindeutigen Tokens für den Download Anfrage.
  • Senden der Anfrage mit dem Token.
  • Anzeige eines „Warten“-Indikators.
  • Einstellen eines Timers, um regelmäßig nach einem entsprechenden Cookie mit dem Token-Wert zu suchen.
  • Ausblenden des Indikators beim Finden des Cookies.

Auf der Serverseite wird der Algorithmus:

  • Überprüft, ob das Token in der Anfrage vorhanden ist.
  • Setzt ein Cookie mit dem Tokenwert, falls gefunden.

Code-Snippet ( JavaScript):

function setFormToken() {
  var downloadToken = new Date().getTime();
  document.getElementById("downloadToken").value = downloadToken;
  return downloadToken;
}
Nach dem Login kopieren

Code-Snippet (PHP):

// Set a cookie to unblock submit button when download begins.
$TOKEN = "downloadToken";
$this->setCookieToken($TOKEN, $_GET[$TOKEN]);
Nach dem Login kopieren

Lösung 2: Server-Polling

Alternativ beinhaltet ein serverseitiger Ansatz:

  • Dateierstellung wird gestartet.
  • Server abfragen bis Fertigstellung.
  • Herunterladen der fertigen Datei.

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage