Đo bằng cả hai dữ liệu lab và field — chúng trả lời câu hỏi khác nhau. Lighthouse là lab (tổng hợp, tái lập được, để debug); RUM là field (người dùng thật, để biết sự thật). Nếu chỉ tin một cái, bạn sẽ tối ưu nhầm chỗ.
Đo bằng cả hai dữ liệu lab và field — chúng trả lời câu hỏi khác nhau. Lighthouse là lab (tổng hợp, tái lập được, để debug); RUM là field (người dùng thật, để biết sự thật). Nếu chỉ tin một cái, bạn sẽ tối ưu nhầm chỗ.
| Lab (Lighthouse) | Field / RUM |
|---|
| Nguồn | Một lần chạy tổng hợp, thiết bị/mạng cố định | Lượt truy cập thật, mọi thiết bị/mạng |
| Hợp cho | Debug, cổng chặn regression trong CI, tái lập | Điều người dùng thực sự trải nghiệm |
| INP | Không đo được (không có tương tác thật) | Đo trên suốt phiên |
| Điểm yếu | Không phản ánh traffic thật | Nhiễu, cần lượng lớn, khó debug hơn |
Lighthouse chạy một lần tải bị throttle trên máy sạch — tuyệt để tái lập vấn đề, vô dụng để biết p75. Đặc biệt INP chỉ đo được ở field, vì nó cần tương tác thật xuyên suốt một phiên.
import { onLCP, onCLS, onINP } from "web-vitals";
function send(metric) {
// Bản attribution cho biết phần tử/tương tác NÀO gây ra nó
navigator.sendBeacon("/rum", JSON.stringify({
name: metric.name, value: metric.value, id: metric.id,
}));
}
onLCP(send); onCLS(send); onINP(send); // báo mỗi metric khi nó chốt giá trị
Đây cũng là phương pháp của CrUX (Chrome User Experience Report) của Google, thứ chi phối xếp hạng Search — CrUX là p75 người dùng thật, không phải lab.
Tín hiệu senior là biết lab ≠ field, xếp hạng dùng p75 field, và INP chỉ thật ở field. Tối ưu điểm Lighthouse trong khi p75 thật vẫn kém là cái bẫy kinh điển mà câu hỏi này được thiết kế để phơi bày.
Thư viện câu hỏi phỏng vấn IT với đáp án chi tiết — từ Junior đến Senior.
Ủng hộ