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
.