ProgressEvent
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
* Some parts of this feature may have varying levels of support.
Note: This feature is available in Web Workers.
Giao diện ProgressEvent đại diện cho các sự kiện đo lường tiến trình của một quá trình cơ bản, chẳng hạn như yêu cầu HTTP (ví dụ: XMLHttpRequest, hoặc việc tải tài nguyên cơ bản của <img>, <audio>, <video>, <style> hoặc <link>).
Hàm khởi tạo
ProgressEvent()-
Tạo một sự kiện
ProgressEventvới các tham số đã cho.
Thuộc tính phiên bản
Cũng kế thừa các thuộc tính từ phần tử cha Event.
ProgressEvent.lengthComputableRead only-
Cờ boolean cho biết tỷ lệ giữa kích thước dữ liệu đã được truyền hoặc xử lý (
loaded) và tổng kích thước dữ liệu (total) có thể tính toán được hay không. Nói cách khác, nó cho biết tiến trình có thể đo lường hay không. ProgressEvent.loadedRead only-
Một số cho biết kích thước dữ liệu đã được truyền hoặc xử lý. Đối với
ProgressEventđược trình duyệt gửi trong các tin nhắn HTTP, giá trị đề cập đến kích thước, tính bằng byte, của phần thân tin nhắn, không bao gồm tiêu đề và các chi phí khác. Trong các tin nhắn nén có tổng kích thước không xác định,loadedcó thể đề cập đến kích thước dữ liệu đã nén hoặc chưa nén, tùy thuộc vào trình duyệt. Tính đến năm 2024, nó chứa kích thước dữ liệu đã nén trong Firefox và dữ liệu chưa nén trong Chrome. TrongProgressEventbạn tự tạo, bạn có thể gán bất kỳ giá trị số nào choloadedđại diện cho lượng công việc đã hoàn thành so với giá trịtotal. ProgressEvent.totalRead only-
Một số cho biết tổng kích thước dữ liệu đang được truyền hoặc xử lý. Đối với
ProgressEventđược trình duyệt gửi trong các tin nhắn HTTP, giá trị đề cập đến kích thước, tính bằng byte, của tài nguyên và được lấy từ tiêu đềContent-Length. TrongProgressEventbạn tự tạo, bạn có thể muốn chuẩn hóatotalthành giá trị như100hoặc1nếu việc tiết lộ số byte chính xác của tài nguyên là điều đáng lo ngại. Nếu sử dụng1làm tổng,loadedsẽ là giá trị thập phân giữa0và1.
Phương thức phiên bản
Kế thừa các phương thức từ phần tử cha, Event.
Ví dụ
>Hiển thị trạng thái của một yêu cầu
Ví dụ sau thêm ProgressEvent vào một XMLHttpRequest mới và sử dụng nó để hiển thị trạng thái của yêu cầu.
const progressBar = document.getElementById("p"),
client = new XMLHttpRequest();
client.open("GET", "magical-unicorns");
client.onprogress = (pe) => {
if (pe.lengthComputable) {
progressBar.max = pe.total;
progressBar.value = pe.loaded;
}
};
client.onloadend = (pe) => {
progressBar.value = pe.loaded;
};
client.send();
Sử dụng phân số trong ProgressEvent
Tổng số byte của một tài nguyên có thể tiết lộ quá nhiều thông tin, do đó có thể sử dụng một số từ 0 đến 1 trong ProgressEvent() thay thế:
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);
Thông số kỹ thuật
| Specification |
|---|
| XMLHttpRequest> # interface-progressevent> |
Tương thích trình duyệt
Xem thêm
- Giao diện cơ bản
Event.