המאפיין timeStamp
בממשק Event
מציין את השעה שבה התרחש אירוע מסוים.
בגרסאות של Chrome שקודמות לגרסה 49, הערך של timeStamp
מיוצג בתור DOMTimeStamp
, שהוא מספר שלם של אלפיות שנייה מאז ראשית הזמן של המערכת, בדומה לערך שהוחזר על ידי Date.now()
.
החל מ-Chrome 49, timeStamp
הוא ערך של DOMHighResTimeStamp
. הערך הזה עדיין הוא מספר אלפיות השנייה, אבל עם רזולוציה של מיקרו-שנייה, כלומר הערך יכלול רכיב עשרוני. בנוסף, במקום שהערך יהיה יחסי לתקופה הקודמת, הערך הוא יחסי ל-PerformanceTiming.navigationStart
, כלומר השעה שבה המשתמש עבר לדף.
היתרונות של התאמה מדויקת יותר של חותמת הזמן מוצגים בדוגמאות הבאות:
שיקולים לגבי דפדפנים שונים ודור קודם
אם יש לכם קוד קיים שמשווה בין ערכים של Event.timeStamp
משני אירועים, אתם לא צריכים לשנות את הקוד בגלל המעבר ל-DOMHighResTimeStamp
. בנוסף, בדפדפנים שתומכים ב-DOMHighResTimeStamp
, הקוד הקיים יפיקו תועלת מרמת הדיוק המוגברת במיקרו-שנייה, כמו גם מהעובדה שהמדד DOMHighResTimeStamp
יגדל באופן מונוטוני, גם אם שעון המערכת משתנה באמצע הביצוע של דף האינטרנט.
אם במקום להשוות שני ערכים של Event.timeStamp
, הקוד צריך לקבוע לפני כמה זמן התרחש אירוע, אפשר להשוות את הערך החדש של DOMHighResTimeStamp
ישירות ל-performance.now()
.
אם צריכים להמיר את Event.timeStamp
למספר מוחלט של אלפיות שנייה מאז תחילת התקופה של המערכת, אפשר לקבל את הערך הזה על ידי הוספת DOMHighResTimeStamp
ל-performance.timing.navigationStart
.
בשני המקרים, ההתנהגות של DOMTimeStamp
ושל DOMHighResTimeStamp
שונה, אבל אפשר לפשט את הקוד בדפדפנים שונים באמצעות פונקציית ההמרה הזו, באדיבות Majid Valipour. היא לוקחת את האובייקט Event
כפרמטר ומחזירה ערך דמוי DOMHighResTimeStamp
, שמוכן להשוואה ל-performance.now()
או להוספה ל-performance.timing.navigationStart
.