Stempel waktu resolusi tinggi untuk acara

Properti timeStamp antarmuka Event menunjukkan waktu terjadinya peristiwa tertentu.

Pada versi Chrome sebelum 49, nilai timeStamp ini direpresentasikan sebagai DOMTimeStamp, yang merupakan bilangan bulat milidetik sejak epoch sistem, seperti nilai yang ditampilkan oleh Date.now().

Mulai Chrome 49, timeStamp adalah nilai DOMHighResTimeStamp. Nilai ini masih berupa jumlah milidetik, tetapi dengan resolusi mikrodetik, yang berarti nilai akan menyertakan komponen desimal. Selain itu, nilainya tidak relatif terhadap epoch, tetapi relatif terhadap PerformanceTiming.navigationStart, yaitu waktu saat pengguna membuka halaman.

Manfaat akurasi stempel waktu tambahan dapat dilihat dalam contoh berikut:

Pertimbangan lintas browser dan lama

Jika sudah memiliki kode yang membandingkan nilai Event.timeStamp dari dua peristiwa, Anda tidak perlu menyesuaikan kode karena peralihan ke DOMHighResTimeStamp. Selain itu, di browser yang mendukung DOMHighResTimeStamp, kode yang ada akan mendapatkan manfaat dari peningkatan akurasi mikrodetik, serta fakta bahwa DOMHighResTimeStamp dijamin akan meningkat secara monoton, terlepas dari apakah jam sistem berubah di tengah eksekusi halaman web Anda.

Jika, alih-alih membandingkan dua nilai Event.timeStamp, kode Anda perlu menentukan berapa lama peristiwa terjadi, nilai DOMHighResTimeStamp baru dapat dibandingkan langsung dengan performance.now(). Dan jika Anda perlu mengubah Event.timeStamp menjadi jumlah absolut milidetik sejak epoch sistem, Anda bisa mendapatkan nilai tersebut dengan menambahkan DOMHighResTimeStamp ke performance.timing.navigationStart.

Dalam kedua kasus tersebut, DOMTimeStamp dan DOMHighResTimeStamp berperilaku berbeda, tetapi Anda dapat menyederhanakan kode lintas browser dengan menggunakan fungsi konversi ini, dari Majid Valipour. Fungsi ini mengambil objek Event sebagai parameter dan menampilkan nilai seperti DOMHighResTimeStamp, yang siap dibandingkan dengan performance.now() atau ditambahkan ke performance.timing.navigationStart.