ProgressEvent: ProgressEvent() Konstruktor
Baseline
Weitgehend verfügbar
*
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit August 2016 browserübergreifend verfügbar.
* Einige Teile dieser Funktion werden möglicherweise unterschiedlich gut unterstützt.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Der ProgressEvent() Konstruktor gibt ein neues ProgressEvent-Objekt zurück, das den aktuellen Fortschritt eines langwierigen Prozesses repräsentiert.
Syntax
new ProgressEvent(type)
new ProgressEvent(type, options)
Parameter
type-
Ein String mit dem Namen des Ereignisses. Er ist groß-/klein-schreibungssensitiv und Browser setzen es auf
loadstart,progress,abort,error,load,timeoutoderloadend. optionsOptional-
Ein Objekt, das zusätzlich zu den in
Event()definierten Eigenschaften die folgenden Eigenschaften haben kann:lengthComputableOptional-
Ein boolescher Wert, der angibt, ob die gesamte zu leistende Arbeit und der bereits geleistete Umfang des zugrunde liegenden Prozesses berechenbar sind. Mit anderen Worten, es zeigt an, ob der Fortschritt messbar ist oder nicht. Standardmäßig ist er auf
falsegesetzt. loadedOptional-
Eine Zahl, die die bereits geleistete Arbeit des zugrunde liegenden Prozesses darstellt. Bei einem vom Browser in HTTP-Nachrichten ausgelösten
ProgressEventbezieht sich der Wert auf die Größe des Nachrichtenkörpers in Bytes, ohne Berücksichtigung von Headern und anderem Overhead. In einem selbst erstelltenProgressEventkönnen Sie jederloaded-Eigenschaft einen numerischen Wert zuweisen, der die Menge der im Verhältnis zumtotal-Wert geleisteten Arbeit darstellt. Standardmäßig ist er auf0gesetzt. totalOptional-
Eine Zahl, die die Gesamtgröße der zu übertragenden oder zu verarbeitenden Daten angibt. Bei vom Browser in HTTP-Nachrichten ausgelösten
ProgressEvents bezieht sich der Wert auf die Größe einer Ressource in Bytes und wird aus demContent-Length-Antwortheader abgeleitet. In einem selbst erstelltenProgressEventmöchten Sietotaleventuell auf einen Wert wie100oder1normalisieren, falls die genaue Anzahl von Bytes einer Ressource vertraulich ist. Wenn Sie beispielsweise1als Gesamtwert verwenden, sollteloadedein Dezimalwert zwischen0und1sein. Standardmäßig ist er auf0gesetzt.
Rückgabewert
Ein neues ProgressEvent-Objekt.
Beispiel
>Dateiupload
Das Beispiel zeigt, wie ein ProgressEvent mithilfe eines Konstruktors erstellt wird. Dies ist besonders nützlich, um den Fortschritt von Prozessen wie Datei-Uploads, Downloads oder beliebigen langwierigen Aufgaben zu verfolgen.
function updateProgress(loaded, total) {
const progressEvent = new ProgressEvent("progress", {
lengthComputable: true,
loaded,
total,
});
document.dispatchEvent(progressEvent);
}
document.addEventListener("progress", (event) => {
console.log(`Progress: ${event.loaded}/${event.total}`);
});
updateProgress(50, 100);
Verwendung von Brüchen in einem ProgressEvent
Die Gesamtanzahl der Bytes einer Ressource könnte zu viele Informationen über einen Download preisgeben, daher kann stattdessen eine Zahl zwischen 0 und 1 verwendet werden:
function updateProgress(loaded, total) {
const progressEvent = new ProgressEvent("progress", {
lengthComputable: true,
loaded,
total,
});
document.dispatchEvent(progressEvent);
}
document.addEventListener("progress", (event) => {
console.log(`Progress: ${event.loaded}/${event.total}`);
});
updateProgress(0.123456, 1);
Spezifikationen
| Spezifikation |
|---|
| XMLHttpRequest> # dom-progressevent-progressevent> |
Browser-Kompatibilität
Siehe auch
- Die
ProgressEvent-Schnittstelle, zu der es gehört.