ویژگی timeStamp
رابط Event
، زمانی را نشان می دهد که یک رویداد معین در آن رخ داده است.
در نسخههای کروم قبل از 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
رفتار متفاوتی دارند، اما میتوانید کد بین مرورگر خود را با استفاده از این تابع تبدیل ، به لطف مجید ولیپور، ساده کنید. یک شی Event
را به عنوان پارامتر می گیرد و مقداری شبیه به DOMHighResTimeStamp
را برمی گرداند که آماده مقایسه با performance.now()
یا افزودن به performance.timing.navigationStart
است.