วัดด้วย ทั้งสอง อย่าง คือ lab และ field data — พวกมันตอบคำถามที่ต่างกัน Lighthouse คือ lab (สังเคราะห์ขึ้น, ทำซ้ำได้, สำหรับ debug); RUM คือ field (ผู้ใช้จริง, เพื่อความจริง) ถ้าคุณเชื่อแค่ตัวเดียว คุณจะ optimize ผิดจุด
วัดด้วย ทั้งสอง อย่าง คือ lab และ field data — พวกมันตอบคำถามที่ต่างกัน Lighthouse คือ lab (สังเคราะห์ขึ้น, ทำซ้ำได้, สำหรับ debug); RUM คือ field (ผู้ใช้จริง, เพื่อความจริง) ถ้าคุณเชื่อแค่ตัวเดียว คุณจะ optimize ผิดจุด
| Lab (Lighthouse) | Field / RUM |
|---|
| แหล่งที่มา | การรันสังเคราะห์ครั้งเดียว อุปกรณ์/network คงที่ | การเข้าชมจริง ทุกอุปกรณ์/network |
| เหมาะสำหรับ | Debug, gate ตรวจ regression ใน CI, ทำซ้ำได้ | สิ่งที่ผู้ใช้ประสบ จริง ๆ |
| INP | วัดไม่ได้ (ไม่มีการโต้ตอบจริง) | วัดได้ตลอดการเข้าชม |
| จุดอ่อน | ไม่สะท้อน traffic จริงของคุณ | มี noise, ต้องใช้ปริมาณมาก, debug ยากกว่า |
Lighthouse รันการโหลดแบบ throttle ครั้งเดียวบนเครื่องที่สะอาด — เยี่ยมสำหรับ การจำลอง ปัญหา แต่ไร้ประโยชน์สำหรับการรู้ p75 ของคุณ โดยเฉพาะ INP จับได้เฉพาะใน field เท่านั้น เพราะมันต้องการการโต้ตอบจริงตลอด session
import { onLCP, onCLS, onINP } from "web-vitals";
function send(metric) {
// Attribution build tells you WHICH element/interaction caused it
navigator.sendBeacon("/rum", JSON.stringify({
name: metric.name, value: metric.value, id: metric.id,
}));
}
onLCP(send); onCLS(send); onINP(send); // report each metric as it finalizes
นี่คือวิธีการเดียวกับ CrUX (Chrome User Experience Report) ของ Google ซึ่งขับเคลื่อนการจัดอันดับใน Search — CrUX คือ p75 ของผู้ใช้จริง ไม่ใช่ lab
สัญญาณของ senior คือการรู้ว่า lab ≠ field, ว่าการจัดอันดับใช้ field p75, และว่า INP เป็นจริงได้เฉพาะใน field การ optimize คะแนน Lighthouse ในขณะที่ p75 จริงยังแย่คือกับดักคลาสสิกที่คำถามนี้ออกแบบมาเพื่อเปิดโปง
คลังคำถามสัมภาษณ์งาน IT พร้อมคำตอบโดยละเอียด — ตั้งแต่ระดับ Junior ถึง Senior
บริจาค