تشير السمة timeStamp
في واجهة Event
إلى الوقت الذي وقع فيه حدث معيّن.
في إصدارات Chrome التي تسبق الإصدار 49، كانت القيمة timeStamp
تُسمى DOMTimeStamp
، أي عدد صحيح من المللي ثانية منذ
حقبة النظام،
تمامًا مثل القيمة التي تعرضها أداة
Date.now()
.
بدءًا من الإصدار 49 من Chrome، تكون قيمة timeStamp
هي
قيمة DOMHighResTimeStamp
. لا تزال هذه القيمة عبارة عن عدد من المللي ثانية، ولكن بدرجة دقة ميكرو ثانية،
مما يعني أن القيمة ستتضمن مكونًا عشريًا. بالإضافة إلى ذلك،
وبدلاً من أن تكون القيمة نسبية إلى الفترة، تكون القيمة نسبية إلى
PerformanceTiming.navigationStart
،
أي الوقت الذي انتقل فيه المستخدِم إلى الصفحة.
تظهر مزايا زيادة دقة الطابع الزمني في الأمثلة التالية:
جميع المتصفحات والاعتبارات القديمة
إذا كان لديك رمز حالي يقارن بين قيم Event.timeStamp
من حدثَين، لن تضطر إلى تعديل الرمز نتيجةً للانتقال إلى DOMHighResTimeStamp
. بالإضافة إلى ذلك، في المتصفحات التي تتيح استخدام
DOMHighResTimeStamp
، سيستفيد الرمز البرمجي الحالي من
الدقة المتزايدة بالميكرو ثانية، فضلاً عن أنّ
DOMHighResTimeStamp
يضمن
زيادة أدائه بشكل رتيب،
بغض النظر عمّا إذا كانت ساعة النظام تتغيّر في منتصف عملية تنفيذ صفحة الويب.
بدلاً من مقارنة قيمتَي Event.timeStamp
، إذا كان الرمز البرمجي يحتاج إلى تحديد مدة وقوع الحدث، يمكن مقارنة قيمة DOMHighResTimeStamp
الجديدة مباشرةً بالسمة performance.now()
.
وإذا كنت بحاجة إلى تحويل Event.timeStamp
إلى عدد مطلق
من المللي ثانية منذ حقبة النظام، يمكنك الحصول على هذه القيمة من خلال إضافة
DOMHighResTimeStamp
إلى performance.timing.navigationStart
.
في كلتا الحالتين، يتصرف DOMTimeStamp
وDOMHighResTimeStamp
بشكل مختلف، ولكن يمكنك تبسيط الرمز البرمجي عبر المتصفحات باستخدام وظيفة التحويل هذه،
مقدمة من ماجد فاليبور. وهو يأخذ عنصر
Event
كمَعلمة ويعرض قيمة تشبه
DOMHighResTimeStamp
، وتكون جاهزة للمقارنة بـ
performance.now()
أو تتم إضافتها إلى
performance.timing.navigationStart
.