การโต้ตอบกับ Next Paint (INP)

เผยแพร่: 6 พฤษภาคม 2022, อัปเดตล่าสุด: 9 กันยายน 2025

Browser Support

  • Chrome: 96.
  • Edge: 96.
  • Firefox Technology Preview: supported.
  • Safari: not supported.

Source

ข้อมูลการใช้งาน Chrome แสดงให้เห็นว่า 90% ของเวลาที่ผู้ใช้ใช้ในหน้าเว็บจะเกิดขึ้นหลังจากโหลดหน้าเว็บแล้ว ดังนั้นการวัดการตอบสนองอย่างรอบคอบตลอดวงจรหน้าเว็บจึงเป็นสิ่งสำคัญ ซึ่งเป็นสิ่งที่เมตริก INP ประเมิน

การตอบสนองที่ดีหมายความว่าหน้าเว็บตอบสนองต่อการโต้ตอบได้อย่างรวดเร็ว เมื่อหน้าเว็บตอบสนองต่อการโต้ตอบ เบราว์เซอร์จะแสดงความคิดเห็นด้วยภาพในเฟรมถัดไปที่วาด ความคิดเห็นด้วยภาพจะบอกคุณ เช่น หากมีการเพิ่มสินค้าที่คุณเพิ่มลงในรถเข็นช็อปปิ้งออนไลน์จริงหรือไม่ เมนูการนำทางบนอุปกรณ์เคลื่อนที่เปิดอยู่หรือไม่ เซิร์ฟเวอร์กำลังตรวจสอบสิทธิ์เนื้อหาของแบบฟอร์มเข้าสู่ระบบหรือไม่ และอื่นๆ

การโต้ตอบบางอย่างอาจใช้เวลานานกว่าการโต้ตอบอื่นๆ แต่สำหรับการโต้ตอบที่ซับซ้อนเป็นพิเศษ คุณควรแสดงความคิดเห็นด้วยภาพเบื้องต้นอย่างรวดเร็วเพื่อบอกให้ผู้ใช้ทราบว่าระบบกำลังทำงานอยู่ เฟรมถัดไปที่เบราว์เซอร์จะแสดงผลคือโอกาสแรกสุดที่จะทำเช่นนี้

ดังนั้น จุดประสงค์ของ INP ไม่ใช่เพื่อวัดผลลัพธ์ทั้งหมดของการโต้ตอบในท้ายที่สุด เช่น การดึงข้อมูลจากเครือข่ายและการอัปเดต UI จากการดำเนินการแบบอะซิงโครนัสอื่นๆ แต่เป็นเวลาที่การแสดงผลถัดไปถูกบล็อก การหน่วงเวลาการแสดงผลภาพอาจทำให้ผู้ใช้รู้สึกว่าหน้าเว็บตอบสนองไม่เร็วพอ และเราได้พัฒนา INP ขึ้นมาเพื่อช่วยให้นักพัฒนาแอปวัดส่วนนี้ของประสบการณ์ของผู้ใช้ได้

ในวิดีโอต่อไปนี้ ตัวอย่างทางด้านขวาจะแสดงความคิดเห็นด้วยภาพทันทีว่าออร์แกนกำลังเปิด การตอบสนองที่ไม่ดีแสดงให้เห็นในตัวอย่างทางด้านซ้าย และวิธีที่การตอบสนองที่ไม่ดีอาจทำให้ผู้ใช้ได้รับประสบการณ์การใช้งานที่ไม่ดี

ตัวอย่างการตอบสนองที่ไม่ดีและดี ทางด้านซ้าย งานที่ใช้เวลานานจะบล็อกไม่ให้ Accordion เปิด ซึ่งทำให้ผู้ใช้คลิกหลายครั้งโดยคิดว่าประสบการณ์การใช้งานไม่สมบูรณ์ เมื่อเทรดหลักประมวลผลอินพุตที่ล่าช้าได้แล้ว ก็จะทำให้ Accordion เปิดและปิดโดยไม่คาดคิด ทางด้านขวา หน้าเว็บที่ตอบสนองได้ดีกว่าจะเปิด Accordion ได้อย่างรวดเร็วและไม่มีปัญหา

คู่มือนี้จะอธิบายวิธีการทำงานของ INP วิธีวัดค่า และชี้ไปยังแหล่งข้อมูลสำหรับการปรับปรุง

INP คืออะไร

INP เป็นเมตริกที่ประเมินการตอบสนองโดยรวมของหน้าเว็บต่อการโต้ตอบของผู้ใช้ โดยสังเกตระยะเวลาในการตอบสนองของการคลิก แตะ และการโต้ตอบด้วยแป้นพิมพ์ทั้งหมดที่เกิดขึ้นตลอดอายุการเข้าชมหน้าเว็บของผู้ใช้ ค่า INP สุดท้ายคือการโต้ตอบที่ยาวที่สุดที่สังเกตได้ โดยที่ไม่ได้สนใจข้อมูลผิดปกติทางสถิติ

รายละเอียดเกี่ยวกับวิธีคำนวณ INP

INP คำนวณโดยการสังเกตการโต้ตอบทั้งหมดที่เกิดขึ้นกับหน้าเว็บ สําหรับเว็บไซต์ส่วนใหญ่ ระบบจะรายงานการโต้ตอบที่มีเวลาในการตอบสนองที่แย่ที่สุดเป็น INP

อย่างไรก็ตาม สำหรับหน้าเว็บที่มีการโต้ตอบจำนวนมาก การหยุดชะงักแบบสุ่มอาจส่งผลให้เกิดการโต้ตอบที่มีเวลาในการตอบสนองสูงอย่างผิดปกติในหน้าเว็บที่ตอบสนองได้ดี ยิ่งมีการโต้ตอบในหน้าเว็บหนึ่งๆ มากเท่าใด ก็ยิ่งมีโอกาสเกิดเหตุการณ์นี้มากขึ้นเท่านั้น

เราจะละเว้นการโต้ตอบที่สูงที่สุด 1 รายการต่อการโต้ตอบ 50 รายการ เพื่อให้การวัดการตอบสนองที่แท้จริงของหน้าเว็บที่มีการโต้ตอบจำนวนมากดีขึ้น ประสบการณ์หน้าเว็บส่วนใหญ่มีการโต้ตอบไม่เกิน 50 รายการ ดังนั้นระบบจึงมักรายงานการโต้ตอบที่แย่ที่สุด จากนั้นระบบจะรายงานเปอร์เซ็นไทล์ที่ 75 ของการดูหน้าเว็บทั้งหมดตามปกติ ซึ่งจะนำค่าผิดปกติออกไปอีกเพื่อให้ได้ค่าที่ผู้ใช้ส่วนใหญ่ได้รับหรือดีกว่า

การโต้ตอบคือกลุ่มตัวแฮนเดิลเหตุการณ์ที่เริ่มทำงานระหว่างท่าทางสัมผัสของผู้ใช้แบบตรรกะเดียวกัน ตัวอย่างเช่น การโต้ตอบ "แตะ" ในอุปกรณ์หน้าจอสัมผัสประกอบด้วยเหตุการณ์หลายอย่าง เช่น pointerup, pointerdown และ click การโต้ตอบอาจเกิดจาก JavaScript, CSS, ตัวควบคุมเบราว์เซอร์ในตัว (เช่น องค์ประกอบของแบบฟอร์ม) หรือการผสมผสานกัน

เวลาในการตอบสนองของการโต้ตอบประกอบด้วยระยะเวลาที่ยาวที่สุดเพียงรายการเดียวของกลุ่มตัวแฮนเดิลเหตุการณ์ที่ขับเคลื่อนการโต้ตอบ ตั้งแต่เวลาที่ผู้ใช้เริ่มการโต้ตอบจนถึงเวลาที่เบราว์เซอร์สามารถวาดเฟรมได้อีกครั้ง ในบางกรณีที่เกิดขึ้นไม่บ่อยนัก อาจไม่มีเฟรมที่จะวาด แต่การโต้ตอบจะสิ้นสุดลงเมื่อเบราว์เซอร์วาดเฟรมได้

คะแนน INP ที่ดีคืออะไร

การปักหมุดป้ายกำกับ เช่น "ดี" หรือ "แย่" ในเมตริกการตอบสนองเป็นเรื่องยาก ในอีกด้านหนึ่ง คุณต้องการสนับสนุนแนวทางปฏิบัติในการพัฒนาที่ให้ความสำคัญกับการตอบสนองที่ดี ในทางกลับกัน คุณต้องคำนึงถึงความจริงที่ว่าความสามารถของอุปกรณ์ที่ผู้คนใช้มีความแตกต่างกันอย่างมาก เพื่อตั้งความคาดหวังในการพัฒนาที่ทำได้จริง

เพื่อให้มั่นใจว่าคุณมอบประสบการณ์การใช้งานที่มีการตอบสนองที่ดีให้แก่ผู้ใช้ เกณฑ์ที่ดีในการวัดคือเปอร์เซ็นไทล์ที่ 75 ของการโหลดหน้าเว็บที่บันทึกไว้ในฟิลด์ โดยแบ่งตามอุปกรณ์เคลื่อนที่และเดสก์ท็อป

  • INP ที่ต่ำกว่าหรือเท่ากับ 200 มิลลิวินาทีหมายความว่าหน้าเว็บมีการตอบสนองที่ดี
  • INP ที่สูงกว่า 200 มิลลิวินาทีและต่ำกว่าหรือเท่ากับ 500 มิลลิวินาทีหมายความว่าการตอบสนองของหน้าเว็บต้องได้รับการปรับปรุง
  • INP ที่สูงกว่า 500 มิลลิวินาทีหมายความว่าหน้าเว็บมีการตอบสนองไม่ดี
ค่า INP ที่ดีคือ 200 มิลลิวินาทีหรือน้อยกว่า ค่าที่ไม่ดีคือมากกว่า 500 มิลลิวินาที และค่าที่อยู่ระหว่างนั้นต้องได้รับการปรับปรุง
ค่า INP ที่ดีคือ 200 มิลลิวินาทีหรือน้อยกว่า ค่าที่ไม่ดีคือค่าที่มากกว่า 500 มิลลิวินาที

การโต้ตอบประกอบด้วยอะไรบ้าง

แผนภาพที่แสดงการโต้ตอบในเทรดหลัก ผู้ใช้ป้อนข้อมูลขณะบล็อกการเรียกใช้ Task ระบบจะหน่วงเวลาอินพุตจนกว่างานเหล่านั้นจะเสร็จสมบูรณ์ หลังจากนั้นตัวแฮนเดิลเหตุการณ์ pointerup, mouseup และ click จะทำงาน จากนั้นจะเริ่มการแสดงผลและการระบายสีจนกว่าจะมีการนำเสนอเฟรมถัดไป
วงจรการโต้ตอบ ความล่าช้าในการป้อนข้อมูลจะเกิดขึ้นจนกว่าตัวแฮนเดิลเหตุการณ์จะเริ่มทํางาน ซึ่งอาจเกิดจากปัจจัยต่างๆ เช่น งานที่ใช้เวลานานในเทรดหลัก จากนั้นระบบจะเรียกใช้แฮนเดิลเลอร์เหตุการณ์ของการโต้ตอบ และจะเกิดการหน่วงเวลาก่อนที่จะแสดงเฟรมถัดไป

โดยทั่วไปแล้ว JavaScript มักเป็นตัวขับเคลื่อนหลักของการโต้ตอบ แม้ว่าเบราว์เซอร์จะมีการโต้ตอบผ่านตัวควบคุมที่ไม่ได้ขับเคลื่อนด้วย JavaScript เช่น ช่องทำเครื่องหมาย ปุ่มตัวเลือก และตัวควบคุมที่ขับเคลื่อนด้วย CSS

เนื่องจากวัตถุประสงค์ของ INP จึงสังเกตเฉพาะการโต้ตอบประเภทต่อไปนี้

  • การคลิกด้วยเมาส์
  • การแตะบนอุปกรณ์ที่มีหน้าจอสัมผัส
  • การกดปุ่มบนแป้นพิมพ์จริงหรือแป้นพิมพ์บนหน้าจอ

การโต้ตอบเกิดขึ้นในเอกสารหลักหรือใน iframe ที่ฝังอยู่ในเอกสาร เช่น การคลิกเล่นในวิดีโอที่ฝัง ผู้ใช้ปลายทางจะไม่ทราบว่ามีอะไรอยู่ใน iframe หรือไม่ ดังนั้นจึงต้องมี INP ภายใน iframe เพื่อวัดประสบการณ์ของผู้ใช้สำหรับหน้าเว็บระดับบนสุด เนื่องจาก JavaScript Web API ไม่มีสิทธิ์เข้าถึงเนื้อหาของ iframe จึงอาจแสดงเป็นความแตกต่างระหว่าง CrUX กับ RUM

การโต้ตอบอาจประกอบด้วยเหตุการณ์หลายอย่าง เช่น การกดแป้นจะรวมถึงเหตุการณ์ keydown, keypress และ keyup การแตะประกอบด้วยเหตุการณ์ pointerup และ pointerdown เหตุการณ์ที่มีระยะเวลานานที่สุดในการโต้ตอบคือเหตุการณ์ที่ทำให้เกิดเวลาในการตอบสนองทั้งหมดของการโต้ตอบ

ภาพการโต้ตอบที่ซับซ้อนมากขึ้นซึ่งมีการโต้ตอบ 2 รายการ เหตุการณ์แรกคือเหตุการณ์ mousedown ซึ่งสร้างเฟรมก่อนที่จะปล่อยปุ่มเมาส์ ซึ่งจะเริ่มการทำงานเพิ่มเติมจนกว่าจะแสดงเฟรมอื่นเป็นผลลัพธ์
ภาพการโต้ตอบกับตัวแฮนเดิลเหตุการณ์หลายตัว ส่วนแรกของการโต้ตอบจะรับอินพุตเมื่อผู้ใช้คลิกปุ่มเมาส์ แต่ก่อนที่จะปล่อยปุ่มเมาส์ ระบบจะแสดงเฟรม เมื่อผู้ใช้ปล่อยปุ่มเมาส์ ตัวแฮนเดิลเหตุการณ์อีกชุดหนึ่งจะต้องทํางานก่อนที่จะแสดงเฟรมถัดไป

ดังที่แสดงในแผนภาพ ระยะเวลาการประมวลผลของ INP จะรวมการเรียกกลับของตัวแฮนเดิลเหตุการณ์ทั้งหมดภายในเฟรมนั้น ซึ่งทำให้ความล่าช้าของอินพุตคือเวลาก่อนที่จะมีการจัดการการเรียกกลับสำหรับการโต้ตอบ ระยะเวลาการประมวลผลคือเวลาที่ใช้ในการเรียกกลับทั้งหมด และความล่าช้าในการนำเสนอคือเวลาหลังจากที่เรียกใช้การเรียกกลับจนกว่าจะมีการนำเสนอเฟรมบนหน้าจอของผู้ใช้

ระบบจะคำนวณ INP ของหน้าเว็บเมื่อผู้ใช้ออกจากหน้าเว็บ ผลลัพธ์คือค่าเดียวที่แสดงถึงการตอบสนองโดยรวมของหน้าเว็บตลอดวงจรของหน้าเว็บ INP ต่ำหมายความว่าหน้าเว็บตอบสนองต่ออินพุตของผู้ใช้ได้อย่างเสถียร

INP แตกต่างจาก First Input Delay (FID) อย่างไร

INP เป็นเมตริกที่ต่อจาก First Input Delay (FID) แม้ว่าทั้ง 2 อย่างจะเป็นเมตริกการตอบสนอง แต่ FID จะวัดเฉพาะความล่าช้าในการป้อนข้อมูลของการโต้ตอบครั้งแรกในหน้าเว็บ INP ปรับปรุง FID โดยสังเกตการโต้ตอบทั้งหมดในหน้าเว็บ ตั้งแต่เวลาหน่วงของการป้อนข้อมูล ไปจนถึงเวลาที่ใช้ในการเรียกใช้ตัวแฮนเดิลเหตุการณ์ และสุดท้ายจนกว่าเบราว์เซอร์จะแสดงเฟรมถัดไป

ความแตกต่างเหล่านี้หมายความว่าทั้ง INP และ FID เป็นเมตริกการตอบสนองประเภทต่างๆ ในขณะที่ FID เป็นเมตริกการตอบสนองต่อการโหลดที่ออกแบบมาเพื่อประเมินความประทับใจแรกของหน้าเว็บต่อผู้ใช้ INP เป็นตัวบ่งชี้การตอบสนองโดยรวมที่เชื่อถือได้มากกว่า ไม่ว่าการโต้ตอบในหน้าเว็บจะเกิดขึ้นเมื่อใดก็ตาม

จะเกิดอะไรขึ้นหากไม่มีการรายงานค่า INP

หน้าเว็บอาจไม่แสดงค่า INP ปัญหานี้อาจเกิดขึ้นได้จากหลายสาเหตุ เช่น

  • หน้าเว็บโหลดแล้ว แต่ผู้ใช้ไม่เคยคลิก แตะ หรือกดปุ่มบนแป้นพิมพ์
  • หน้าเว็บโหลดแล้ว แต่ผู้ใช้โต้ตอบกับหน้าเว็บโดยใช้ท่าทางสัมผัสที่ไม่ได้วัดผล เช่น การเลื่อนหรือการวางเมาส์เหนือองค์ประกอบ
  • บ็อตกำลังเข้าถึงหน้าเว็บ เช่น Crawler ของ Search หรือเบราว์เซอร์แบบไม่มีส่วนหัวที่ไม่ได้เขียนสคริปต์ให้โต้ตอบกับหน้าเว็บ

วิธีวัด INP

คุณวัด INP ได้ทั้งในฟิลด์และในห้องทดลอง ตราบใดที่คุณจำลองการโต้ตอบของผู้ใช้ที่สมจริงได้

ในฟิลด์

ในอุดมคติแล้ว การเพิ่มประสิทธิภาพ INP ควรเริ่มต้นด้วยข้อมูลภาคสนาม ข้อมูลภาคสนามจากการตรวจสอบผู้ใช้จริง (RUM) จะให้ค่า INP ของหน้าเว็บแก่คุณ รวมถึงข้อมูลเชิงบริบทที่ไฮไลต์การโต้ตอบที่เฉพาะเจาะจงซึ่งเป็นสาเหตุของค่า INP เอง ไม่ว่าการโต้ตอบจะเกิดขึ้นระหว่างหรือหลังการโหลดหน้าเว็บ ประเภทของการโต้ตอบ (คลิก กดแป้น หรือแตะ) และเวลาอื่นๆ ที่มีประโยชน์ซึ่งจะช่วยให้คุณระบุได้ว่าส่วนใดของการโต้ตอบที่ส่งผลต่อการตอบสนอง

หากเว็บไซต์ของคุณมีสิทธิ์รวมอยู่ในรายงานประสบการณ์ของผู้ใช้ Chrome (CrUX) คุณจะดูข้อมูลภาคสนามสำหรับ INP ผ่าน CrUX ใน PageSpeed Insights (และ Core Web Vitals อื่นๆ) ได้อย่างรวดเร็ว คุณจะดูภาพรวมระดับต้นทางของ INP ของเว็บไซต์ได้เป็นอย่างน้อย แต่ในบางกรณี คุณจะดูข้อมูลระดับ URL ได้ด้วย

อย่างไรก็ตาม แม้ว่า CrUX จะบอกได้ว่ามีปัญหา แต่ก็ไม่สามารถบอกได้ว่าสาเหตุของปัญหาคืออะไร โซลูชัน RUM จะช่วยให้คุณทราบรายละเอียดเพิ่มเติมเกี่ยวกับหน้าเว็บ ผู้ใช้ หรือการโต้ตอบของผู้ใช้ที่พบปัญหาด้านการตอบสนอง การระบุแหล่งที่มาของ INP ให้กับการโต้ตอบแต่ละครั้งจะช่วยให้ไม่ต้องคาดเดาและไม่ต้องเสียเวลาโดยเปล่าประโยชน์

ในห้องทดลอง

ในกรณีที่เหมาะสม คุณควรเริ่มทดสอบในห้องทดลองเมื่อมีข้อมูลภาคสนามที่บ่งชี้ว่าหน้าเว็บมีการโต้ตอบที่ช้า ข้อมูลฟิลด์จะช่วยให้การจำลองการโต้ตอบที่มีปัญหาในห้องทดลองเป็นงานที่ตรงไปตรงมามากขึ้น

อย่างไรก็ตาม คุณอาจไม่มีข้อมูลภาคสนาม แม้ว่าเครื่องมือในห้องทดลองบางอย่างจะวัด INP ได้ แต่ค่า INP ที่ได้สำหรับหน้าเว็บระหว่างการทดสอบในห้องทดลองจะขึ้นอยู่กับการโต้ตอบที่เกิดขึ้นในช่วงระยะเวลาการวัด พฤติกรรมของผู้ใช้อาจคาดเดาไม่ได้และมีความผันผวนสูง ซึ่งหมายความว่าการทดสอบในห้องทดลองอาจไม่แสดงการโต้ตอบที่เป็นปัญหาในลักษณะเดียวกับที่ข้อมูลภาคสนามทำได้ นอกจากนี้ เครื่องมือในห้องทดลองบางอย่างจะไม่รายงาน INP ของหน้าเว็บเนื่องจากจะสังเกตเฉพาะการโหลดหน้าเว็บโดยไม่มีการโต้ตอบใดๆ ในกรณีเช่นนี้ เวลาในการบล็อกทั้งหมด (TBT) อาจเป็นเมตริกพร็อกซีที่สมเหตุสมผลสำหรับ INP แต่ไม่ใช่ตัวแทนของ INP ในตัวของมันเอง

แม้ว่าเครื่องมือในห้องทดลองจะมีข้อจำกัดในการประเมิน INP ของหน้าเว็บ แต่ก็มีกลยุทธ์บางอย่างในการจำลองการโต้ตอบที่ช้าในห้องทดลอง กลยุทธ์ต่างๆ ได้แก่ การทำตามโฟลว์ของผู้ใช้ทั่วไปและการทดสอบการโต้ตอบตลอดเส้นทาง รวมถึงการโต้ตอบกับหน้าเว็บขณะที่โหลด (เมื่อเทรดหลักมักจะทำงานหนักที่สุด) เพื่อระบุการโต้ตอบที่ช้าในช่วงเวลาสำคัญของประสบการณ์ของผู้ใช้

วัด INP ใน JavaScript

หากต้องการวัด INP ใน JavaScript คุณต้องวัดเวลาของเหตุการณ์สำหรับการโต้ตอบทั้งหมด จากนั้นจึงใช้เปอร์เซ็นไทล์ที่ 98 ของการโต้ตอบทั้งหมดเหล่านี้เมื่อเลิกโหลดหน้าเว็บ คุณดูweb vitalsซอร์สโค้ดไลบรารี JavaScript ซึ่งมีการติดตั้งใช้งานอ้างอิงเกี่ยวกับวิธีคำนวณ INP ได้

ในกรณีส่วนใหญ่ ค่า INP ปัจจุบัน ณ เวลาที่เลิกโหลดหน้าเว็บคือค่า INP สุดท้ายของหน้านั้น แต่ก็มีข้อยกเว้นที่สำคัญบางประการตามที่ระบุไว้ในส่วนถัดไป web vitals ไลบรารี JavaScript จะพิจารณาถึงเรื่องนี้ให้มากที่สุดภายในข้อจำกัดของ Web API

ความแตกต่างระหว่างเมตริกกับ API

  • eventรายการที่ต่ำกว่า 104 มิลลิวินาทีจะไม่รายงานโดยค่าเริ่มต้นเมื่อใช้ Performance Observer ค่าเริ่มต้นนี้จะเปลี่ยนแปลงได้เมื่อลงทะเบียนเครื่องมือสังเกตการณ์ประสิทธิภาพโดยใช้พารามิเตอร์ durationThreshold แต่ค่านี้ก็ยังมีค่าต่ำสุดอยู่ที่ 16 มิลลิวินาที ด้วยเหตุนี้ เราจึงขอแนะนำให้สังเกตfirst-inputรายการด้วย ซึ่งเป็นรายการเวลาของเหตุการณ์เช่นกัน แต่รับประกันว่าจะสังเกตได้แม้ว่าระยะเวลาจะน้อยกว่า durationThreshold ซึ่งจะช่วยให้มั่นใจได้ว่าหน้าเว็บที่มีการโต้ตอบจะรายงานค่า INP เสมอ
  • ในทางเทคนิคแล้ว การคำนวณเปอร์เซ็นไทล์อย่างสมบูรณ์แบบต้องเก็บตัวอย่างทั้งหมดไว้ในหน่วยความจำ ซึ่งอาจมีค่าใช้จ่ายสูง แต่คุณสามารถประมาณเปอร์เซ็นไทล์ได้ โดยเฉพาะเปอร์เซ็นไทล์ที่สูงมาก เช่น p98 เพียงแค่เก็บรายการเล็กๆ ของการโต้ตอบที่แย่ที่สุด N รายการ โดย 10 เป็นตัวเลือกที่นิยมใช้
  • หากมีการกู้คืนหน้าเว็บจาก Back/Forward Cache ค่า INP ของหน้าเว็บนั้นควรได้รับการรีเซ็ตเป็น 0 เนื่องจากผู้ใช้จะถือว่าเป็นการเข้าชมหน้าเว็บที่แตกต่างกัน
  • API ไม่รายงานรายการ event สำหรับการโต้ตอบที่เกิดขึ้นภายใน iframe แต่เมตริกจะรายงานเนื่องจากเป็นส่วนหนึ่งของประสบการณ์ของผู้ใช้ในหน้าเว็บ ซึ่งอาจแสดงเป็นความแตกต่างระหว่าง CrUX กับ RUM คุณควรพิจารณาเมตริกเหล่านี้เพื่อวัด INP อย่างเหมาะสม เฟรมย่อยสามารถใช้ API เพื่อรายงานรายการ event-timing ไปยังเฟรมหลักได้

นอกเหนือจากข้อยกเว้นเหล่านี้ INP ยังมีความซับซ้อนเพิ่มขึ้นเนื่องจากข้อเท็จจริงที่ว่าเมตริกนี้จะวัดอายุการใช้งานทั้งหมดของหน้าเว็บ

  • ผู้ใช้อาจเปิดแท็บทิ้งไว้เป็นเวลานานมาก เช่น หลายวัน หลายสัปดาห์ หรือหลายเดือน ในความเป็นจริง ผู้ใช้อาจไม่เคยปิดแท็บเลย
  • ในระบบปฏิบัติการของอุปกรณ์เคลื่อนที่ โดยปกติแล้วเบราว์เซอร์จะไม่เรียกใช้การเรียกกลับการยกเลิกการโหลดหน้าเว็บสำหรับแท็บพื้นหลัง ซึ่งทำให้รายงานค่า "สุดท้าย" ได้ยาก

หากต้องการจัดการกรณีดังกล่าว ควรรายงาน INP ทุกครั้งที่หน้าเว็บทำงานในเบื้องหลัง นอกเหนือจากทุกครั้งที่หน้าเว็บถูกยกเลิกการโหลด (เหตุการณ์ visibilitychange ครอบคลุมทั้ง 2 สถานการณ์นี้) และระบบวิเคราะห์ที่ได้รับข้อมูลนี้จะต้องคำนวณค่า INP สุดท้ายในแบ็กเอนด์

นักพัฒนาแอปสามารถใช้web-vitalsไลบรารี JavaScript เพื่อวัด INP ซึ่งจะพิจารณาทุกอย่างที่กล่าวถึงก่อนหน้านี้ ยกเว้นกรณี iframe แทนที่จะจดจำและจัดการกับกรณีเหล่านี้ด้วยตนเอง

import {onINP} from 'web-vitals';

// Measure and log INP in all situations
// where it needs to be reported.
onINP(console.log);

วิธีปรับปรุง INP

ชุดคำแนะนำเกี่ยวกับการเพิ่มประสิทธิภาพ INP พร้อมให้คุณใช้เป็นแนวทางตลอดกระบวนการระบุการโต้ตอบที่ช้าในภาคสนาม และใช้ข้อมูลในห้องทดลองเพื่อช่วยระบุสาเหตุและเพิ่มประสิทธิภาพ

บันทึกการเปลี่ยนแปลง

บางครั้งเราพบข้อบกพร่องใน API ที่ใช้ในการวัดเมตริก และบางครั้งก็พบในคำจำกัดความของเมตริกเอง ด้วยเหตุนี้ บางครั้งจึงต้องทำการเปลี่ยนแปลง และการเปลี่ยนแปลงเหล่านี้อาจปรากฏเป็นการปรับปรุงหรือการถดถอยในรายงานและแดชบอร์ดภายใน

เพื่อช่วยคุณจัดการเรื่องนี้ เราจะแสดงการเปลี่ยนแปลงทั้งหมดในการติดตั้งใช้งานหรือคําจํากัดความของเมตริกเหล่านี้ในบันทึกการเปลี่ยนแปลงนี้

หากมีความคิดเห็นเกี่ยวกับเมตริกเหล่านี้ โปรดแสดงความคิดเห็นใน Google Group web-vitals-feedback

ทดสอบความรู้ของคุณ

เป้าหมายหลักของเมตริก INP คืออะไร

เพื่อวัดเวลาที่ใช้ในการแสดงเนื้อหาแรกของหน้าเว็บ
ไม่ถูกต้อง - อธิบาย First Contentful Paint
เพื่อวัดปริมาณความเสถียรของภาพในหน้าเว็บและลดการเปลี่ยนเลย์เอาต์ที่ไม่คาดคิด
ไม่ถูกต้อง - อธิบาย Cumulative Layout Shift
เพื่อประเมินระยะเวลาที่หน้าเว็บใช้ในการตอบสนองอย่างสมบูรณ์
ไม่ถูกต้อง - เมตริกนี้เกี่ยวข้องกับเวลาในการโต้ตอบ แต่ INP มุ่งเน้นที่การตอบสนองต่ออินพุตของผู้ใช้โดยเฉพาะ
เพื่อลดเวลาตั้งแต่เมื่อผู้ใช้เริ่มการโต้ตอบจนกว่าจะมีการวาดเฟรมถัดไปสําหรับการโต้ตอบทั้งหมดหรือส่วนใหญ่ที่ผู้ใช้เริ่ม
ถูกต้อง

ระบบจะสังเกตการโต้ตอบประเภทใดต่อไปนี้เพื่อวัตถุประสงค์ในการคำนวณ INP (เลือกได้มากกว่า 1 ข้อ)

การคลิกด้วยเมาส์
ถูกต้อง
การเลื่อนหน้าด้วยล้อเมาส์หรือแทร็กแพด
ไม่ถูกต้อง - INP ไม่พิจารณาการเลื่อน
การแตะบนหน้าจอสัมผัส
ถูกต้อง
วางเคอร์เซอร์เมาส์เหนือองค์ประกอบ
ไม่ถูกต้อง - INP ไม่พิจารณาการวางเมาส์
การกดแป้นบนแป้นพิมพ์
ถูกต้อง
ซูมเข้าหรือออกในหน้า
ไม่ถูกต้อง - INP ไม่พิจารณาการซูม

"เวลาในการตอบสนอง" ของการโต้ตอบสำหรับ INP มีคำจำกัดความว่าอย่างไร

ระยะเวลาที่เบราว์เซอร์ใช้ในการประมวลผลตัวแฮนเดิลเหตุการณ์ของการโต้ตอบ
ไม่ถูกต้อง - การวัดนี้จะพิจารณาเฉพาะระยะเวลาการประมวลผลเท่านั้น ไม่รวมความล่าช้าของอินพุตหรือเวลาในการแสดงเฟรมถัดไป
เวลาโดยเฉลี่ยที่การโต้ตอบทั้งหมดในหน้าเว็บใช้ในการสร้างการตอบสนองด้วยภาพ
ไม่ถูกต้อง - INP มุ่งเน้นที่การโต้ตอบที่ยาวที่สุด ไม่ใช่ค่าเฉลี่ย
เวลาที่เบราว์เซอร์ใช้ในการเริ่มประมวลผลตัวแฮนเดิลเหตุการณ์ที่เชื่อมโยงกับการโต้ตอบ
ไม่ถูกต้อง - การวัดนี้จะพิจารณาเฉพาะความล่าช้าของอินพุต ไม่ใช่เวลาในการประมวลผลและการแสดงผล
เวลาตั้งแต่เริ่มการโต้ตอบจนถึงเวลาที่เฟรมถัดไปแสดงอย่างสมบูรณ์
ถูกต้อง

INP และ FID แตกต่างกันอย่างไร

INP วัดระยะเวลาที่ใช้ในการแสดงเนื้อหาแรกของหน้าเว็บ ขณะที่ FID วัดการตอบสนองต่ออินพุตของผู้ใช้
ไม่ถูกต้อง - คำอธิบายนี้อธิบาย First Contentful Paint ไม่ใช่ INP
INP จะพิจารณาระยะเวลาทั้งหมดของการโต้ตอบทั้งหมด ในขณะที่ FID จะวัดเฉพาะเวลาในการตอบสนองของอินพุตของการโต้ตอบแรกเท่านั้น
ถูกต้อง
INP และ FID จะวัดการประทับเวลาที่ต่างกันซึ่งหน้าเว็บจะกลายเป็นแบบอินเทอร์แอกทีฟ
ไม่ถูกต้อง - INP และ FID เป็นการวัดความเร็วที่หน้าเว็บตอบสนองต่อการโต้ตอบ โดยไม่คำนึงถึงเวลาที่เกิดการโต้ตอบ
ไม่มีความแตกต่างใดๆ INP และ FID เป็นเพียงชื่อที่แตกต่างกัน 2 ชื่อสำหรับเมตริกเดียวกัน
ไม่ถูกต้อง - คำจำกัดความแตกต่างกัน

ในกรณีใดบ้างที่ข้อมูล INP ของหน้าเว็บอาจไม่พร้อมใช้งานในเครื่องมือต่างๆ เช่น PageSpeed Insights

หน้าเว็บใช้ไลบรารีการวัดประสิทธิภาพที่กำหนดเองซึ่งไม่รายงานข้อมูล INP
ไม่ถูกต้อง - INP จะวัดโดยอัตโนมัติโดยใช้ Web Platform API และไม่ได้อาศัยการรายงานประสิทธิภาพของหน้าเว็บด้วยตนเองผ่านไลบรารีที่กำหนดเอง
ไม่มีข้อมูลการโต้ตอบจากผู้ใช้ Chrome เพียงพอที่จะคำนวณค่า INP ที่มีความหมายในชุดข้อมูล CrUX
ถูกต้อง
ผู้ใช้โต้ตอบกับหน้าเว็บผ่านการเลื่อนและการวางเมาส์เท่านั้น ซึ่งระบบจะไม่นํามาพิจารณาสำหรับ INP
ถูกต้อง
หน้าเว็บสร้างขึ้นโดยใช้เฟรมเวิร์กที่เพิ่มประสิทธิภาพ INP โดยอัตโนมัติ จึงไม่จำเป็นต้องรายงาน
ไม่ถูกต้อง - เฟรมเวิร์กช่วยในเรื่อง INP ได้ แต่เมตริกยังคงเกี่ยวข้องและจะรายงานหากมีข้อมูล

กลยุทธ์ใดมีประสิทธิภาพมากที่สุดในการจำลองการโต้ตอบที่ช้าในสภาพแวดล้อมของห้องทดลอง

จำลองอุปกรณ์ระดับไฮเอนด์ที่มีการเชื่อมต่อเครือข่ายที่ช้าและไม่เสถียรเพื่อสร้างสภาวะที่ท้าทาย
ไม่ถูกต้อง - แม้ว่าเครือข่ายจะมีส่วนเกี่ยวข้อง แต่ความสามารถของอุปกรณ์มีแนวโน้มที่จะทำให้เห็นการโต้ตอบที่ช้ามากกว่า
ทดสอบการโต้ตอบหลังจากที่หน้าเว็บโหลดเสร็จสมบูรณ์และไม่ได้ใช้งานแล้วเท่านั้น
ไม่ถูกต้อง - อาจพลาดการโต้ตอบที่ช้าในระหว่างการโหลด
โต้ตอบกับหน้าเว็บระหว่างการโหลดและทำตามโฟลว์ของผู้ใช้ทั่วไปเพื่อระบุจุดคอขวดที่อาจเกิดขึ้น
ถูกต้อง
มุ่งเน้นที่การโต้ตอบที่ซับซ้อนและกรณีข้อยกเว้นที่ผู้ใช้ส่วนใหญ่ไม่น่าจะพบ
ไม่ถูกต้อง - โลว์ผู้ใช้ทั่วไปมีความเกี่ยวข้องมากกว่าในการระบุปัญหา INP ทั่วไป

แบบทดสอบนี้สร้างโดย Gemini 1.5 และได้รับการตรวจสอบโดยเจ้าหน้าที่ แชร์ความคิดเห็น