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

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

Chrome'un 49 öncesi sürümlerinde bu timeStamp değeri DOMTimeStamp olarak temsil ediliyordu. Bu değer, tıpkı Date.now() tarafından döndürülen değere benzer şekilde, sistem döneminden beri geçen bir tam sayıdır.

Chrome 49 sürümünden itibaren timeStamp, bir DOMHighResTimeStamp değeridir. Bu değer yine milisaniye cinsinden bir sayıdır ancak mikrosaniye çözünürlüğündedir. Diğer bir deyişle, değer ondalık bir bileşen içerir. Ayrıca değer, döneme göre olmak yerine PerformanceTiming.navigationStart ile ilişkilidir. Bu da kullanıcının sayfada gezindiği zamandır.

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

Tarayıcılar arası ve eski sürümlerle ilgili dikkat edilmesi gereken noktalar

İki etkinlikten Event.timeStamp değerlerini karşılaştıran bir kodunuz varsa DOMHighResTimeStamp değerine geçiş nedeniyle kodunuzu ayarlamanız gerekmemelidir. Ayrıca, DOMHighResTimeStamp özelliğini destekleyen tarayıcılarda mevcut kodunuz, artan mikrosaniye doğruluğundan ve web sayfanızın yürütülmesi sırasında sistem saatinin değişip değişmediğinden bağımsız olarak DOMHighResTimeStamp için monoton olarak 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 gerekiyorsa yeni DOMHighResTimeStamp değeri doğrudan performance.now() ile karşılaştırılabilir. Ayrıca, sistem döneminden bu yana Event.timeStamp değerini 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ı davranır ancak Majid Valipour'un izniyle bu dönüşüm işlevini kullanarak tarayıcılar arası kodunuzu basitleştirebilirsiniz. Parametre olarak bir Event nesnesini alır ve performance.now() ile karşılaştırılmaya veya performance.timing.navigationStart öğesine eklenmeye hazır, DOMHighResTimeStamp benzeri bir değer döndürür.