Etkinlikler için yüksek çözünürlüklü zaman damgaları

Cem Posnick
Jeff Posnick

Event arayüzünün timeStamp özelliği, belirli bir etkinliğin gerçekleştiği zamanı belirtir.

Chrome'un 49'dan önceki sürümlerinde bu timeStamp değeri, DOMTimeStamp olarak temsil ediliyordu. Bu değer, sistem döneminden bu yana geçen milisaniyelerin toplam sayısıdır (Date.now() tarafından döndürülen değere benzer şekilde).

Chrome 49'dan itibaren timeStamp, DOMHighResTimeStamp değeridir. Bu değer hâlâ milisaniye cinsinden bir sayıdır ancak mikrosaniye çözünürlüğündedir. Bu, değerin ondalık bir bileşen içereceği anlamına gelir. Ayrıca, değerin sıfır dönemle göreceli yerine, PerformanceTiming.navigationStart (yani kullanıcının sayfaya gittiği zaman) ile göreli olur.

Ek zaman damgası doğruluğunun avantajları aşağıdaki örneklerde görülebilir:

Tarayıcılar arası ve eskiden göz önünde bulundurulması gereken noktalar

İki etkinlikteki Event.timeStamp değerlerini karşılaştıran mevcut kodunuz varsa DOMHighResTimeStamp sürümüne geçişin hesaba katıldığında kodunuzu ayarlamanız gerekmez. Ayrıca, DOMHighResTimeStamp'yi destekleyen tarayıcılarda mevcut kodunuz, mikrosaniye doğruluğunun artmasından faydalanır ve web sayfanızın çalışması sırasında sistem saatinin değişip değişmemesinden bağımsız olarak DOMHighResTimeStamp kodunun monoton bir şekilde artacağını garanti eder.

İki Event.timeStamp değerini karşılaştırmak yerine kodunuzun bir etkinliğin ne kadar zaman önce gerçekleştiğini belirlemesi gerekirse yeni DOMHighResTimeStamp değeri doğrudan performance.now() ile karşılaştırılabilir. Event.timeStamp değerini sistem sıfır noktasından bu yana mutlak bir milisaniye sayısına dönüştürmeniz gerekirse performance.timing.navigationStart öğesine DOMHighResTimeStamp ekleyerek bu değeri elde edebilirsiniz.

Her iki durumda da DOMTimeStamp ve DOMHighResTimeStamp farklı şekilde davranır ancak Majid Valipour'un izniyle bu dönüşüm işlevini kullanarak tarayıcılar arası kodunuzu basitleştirebilirsiniz. Event nesnesini parametre olarak alır ve performance.now() ile karşılaştırılmaya veya performance.timing.navigationStart'a eklenmeye hazır olan DOMHighResTimeStamp benzeri bir değer döndürür.