การประทับเวลาความละเอียดสูงสำหรับเหตุการณ์

พร็อพเพอร์ตี้ timeStamp ของอินเทอร์เฟซ Event จะระบุเวลาที่เกิดเหตุการณ์หนึ่งๆ

ใน Chrome เวอร์ชันก่อนหน้า 49 ค่า timeStamp นี้แสดงเป็น DOMTimeStamp ซึ่งเป็นจํานวนมิลลิวินาทีที่นับแต่ Epoch ของระบบ คล้ายกับค่าที่ Date.now() แสดงผล

สำหรับ Chrome 49 เป็นต้นไป timeStamp จะเป็นค่า DOMHighResTimeStamp ค่านี้ยังคงเป็นจำนวนมิลลิวินาที แต่ที่มีความละเอียดระดับไมโครวินาที หมายความว่าค่าจะมีองค์ประกอบที่เป็นทศนิยม นอกจากนี้ แทนค่าที่สัมพันธ์กับ Epoch ค่าจะสัมพันธ์กับ PerformanceTiming.navigationStart กล่าวคือ เวลาที่ผู้ใช้ไปยังหน้าเว็บ

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

ข้อควรพิจารณาเดิมระหว่างเบราว์เซอร์และเบราว์เซอร์

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

หากแทนที่การเปรียบเทียบค่า Event.timeStamp 2 ค่า โค้ดจะต้องระบุระยะเวลาที่ผ่านมาของเหตุการณ์ที่เกิดขึ้น คุณจะเปรียบเทียบค่า DOMHighResTimeStamp ใหม่กับ performance.now() ได้โดยตรง และหากต้องการแปลง Event.timeStamp เป็นจำนวนสัมบูรณ์ของมิลลิวินาทีนับตั้งแต่ Epoch ของระบบ คุณก็รับค่าดังกล่าวได้โดยเพิ่ม DOMHighResTimeStamp ลงใน performance.timing.navigationStart

ในทั้ง 2 กรณี DOMTimeStamp และ DOMHighResTimeStamp จะทำงานต่างกัน แต่คุณสามารถลดความซับซ้อนของโค้ดสำหรับเบราว์เซอร์หลายเบราว์เซอร์ได้โดยใช้ฟังก์ชัน Conversion นี้ ซึ่งเป็นข้อมูลของ Majid Valipour ซึ่งจะใช้ออบเจ็กต์ Event เป็นพารามิเตอร์และแสดงผลค่าที่เหมือน DOMHighResTimeStamp ซึ่งพร้อมที่จะเปรียบเทียบกับ performance.now() หรือเพิ่มลงใน performance.timing.navigationStart