המאפיין 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
.