PerformanceResourceTiming: workerStart property
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2018.
Note: This feature is available in Web Workers.
Thuộc tính chỉ đọc workerStart của giao diện PerformanceResourceTiming trả về một
DOMHighResTimeStamp ngay trước khi phát FetchEvent nếu luồng Service Worker đang chạy, hoặc ngay trước khi khởi động luồng Service Worker nếu nó chưa chạy. Nếu tài nguyên không bị Service Worker chặn thì thuộc tính này luôn trả về 0.
Giá trị
Thuộc tính workerStart có thể có các giá trị sau:
- Một
DOMHighResTimeStamp. 0nếu không dùng service worker.0nếu tài nguyên là một yêu cầu cross-origin và không dùng tiêu đề phản hồi HTTPTiming-Allow-Origin.
Ví dụ
>Đo thời gian xử lý của ServiceWorker
Các thuộc tính workerStart và fetchStart có thể dùng để đo thời gian xử lý của một ServiceWorker.
const workerProcessingTime = entry.fetchStart - entry.workerStart;
Ví dụ dùng PerformanceObserver, thông báo các performance entry resource mới khi chúng được ghi trong performance timeline của trình duyệt. Dùng tùy chọn buffered để truy cập các entry từ trước khi observer được tạo.
const observer = new PerformanceObserver((list) => {
list.getEntries().forEach((entry) => {
const workerProcessingTime = entry.fetchStart - entry.workerStart;
if (workerProcessingTime > 0) {
console.log(
`${entry.name}: Worker processing time: ${workerProcessingTime}ms`,
);
}
});
});
observer.observe({ type: "resource", buffered: true });
Ví dụ dùng Performance.getEntriesByType(), chỉ hiển thị các performance entry resource đang có trong performance timeline tại thời điểm bạn gọi phương thức này:
const resources = performance.getEntriesByType("resource");
resources.forEach((entry) => {
const workerProcessingTime = entry.fetchStart - entry.workerStart;
if (workerProcessingTime > 0) {
console.log(
`${entry.name}: Worker processing time: ${workerProcessingTime}ms`,
);
}
});
Thông tin timing liên miền
Nếu giá trị của thuộc tính workerStart là 0, tài nguyên có thể là một yêu cầu cross-origin. Để cho phép xem thông tin timing cross-origin, cần đặt tiêu đề phản hồi HTTP Timing-Allow-Origin.
Ví dụ, để cho phép https://mdn.go-mizu.dev xem timing tài nguyên, tài nguyên cross-origin nên gửi:
Timing-Allow-Origin: https://mdn.go-mizu.dev
Thông số kỹ thuật
| Specification |
|---|
| Resource Timing> # dom-performanceresourcetiming-workerstart> |