مهرهای زمانی با وضوح بالا برای رویدادها

ویژگی 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 است.