Properti timeStamp
dari antarmuka Event
menunjukkan waktu saat peristiwa tertentu terjadi.
Pada versi Chrome sebelum 49, nilai timeStamp
ini
diwakili sebagai DOMTimeStamp
,
yang merupakan bilangan bulat dalam milidetik sejak
epoch sistem,
mirip dengan nilai yang ditampilkan oleh
Date.now()
.
Mulai Chrome 49, timeStamp
adalah
nilai
DOMHighResTimeStamp
. Nilai ini masih berupa jumlah milidetik, tetapi dengan resolusi mikrodetik, artinya nilai tersebut akan menyertakan komponen desimal. Selain itu,
bukannya nilai yang relatif terhadap epoch, nilainya 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, pada 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 telah terjadi, nilai
DOMHighResTimeStamp
baru dapat dibandingkan langsung dengan
performance.now()
.
Jika perlu mengubah Event.timeStamp
ke 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 menggunakan
fungsi konversi,
yang disediakan oleh Majid Valipour. Metode ini mengambil
objek Event
sebagai parameter dan menampilkan
nilai seperti DOMHighResTimeStamp
, yang siap dibandingkan dengan
performance.now()
atau ditambahkan ke
performance.timing.navigationStart
.