كرونومتر

ساعة إيقاف دقيقة عبر الإنترنت مع أوقات اللفات والأزمنة الجزئية واختصارات لوحة مفاتيح وقائمة نتائج قابلة للنسخ. تستخدم ساعة أحادية الاتجاه بحيث لا يمكن لتبويب في الخلفية مُبطأ إحداث انحراف فيها.

ساعة إيقاف لا تنحرف. ابدأ وأوقف مؤقتًا وسجّل اللفات بالأزرار أو لوحة المفاتيح. تحتفظ كل لفة بزمنها الجزئي والإجمالي الجاري، ويمكن نسخ القائمة كاملة دفعة واحدة.

00:00:00.00

المسافة تبدأ وتوقف مؤقتًا، وL تسجل لفة، وR تعيد التعيين.

اللفات
# جزئي الإجمالي

لم تُسجل أي لفات بعد.

ما الذي يجعل ساعة إيقاف المتصفح دقيقة

الطوابع الزمنية تتفوق على العدادات

الطريقة الساذجة لبناء ساعة إيقاف هي إضافة مقدار ثابت إلى عداد عند كل نبضة. وهي أيضًا الطريقة الخاطئة، لأن المؤقتات في المتصفح غير مضمونة أن تنطلق في موعدها. انتقل إلى تبويب آخر فيُخنق الفاصل إلى مرة في الثانية أو يتوقف كليًا؛ ضع الحاسوب المحمول في وضع النوم فيتوقف تمامًا. عداد مبني بهذه الطريقة يفقد الوقت ولا يستعيده أبدًا.

يسجل هذا الكرونومتر بدلًا من ذلك اللحظة التي بدأ فيها ويطرحها من اللحظة الحالية عند كل إعادة رسم. لا يتراكم شيء، فلا يمكن أن يتراكم خطأ. إذا خُنق التبويب، يتوقف العرض عن التحديث لكن الساعة الأساسية تستمر في العمل، ويعرض الإطار الأول بعد عودتك الوقت المنقضي الصحيح بدلًا من رقم تخلف عن الركب أثناء غيابك.

الوقت الأحادي، لا وقت الساعة الجدارية

الساعة المستخدمة هنا هي performance.now()، التي تعد من لحظة تحميل الصفحة ولا تتقدم إلا إلى الأمام. هذا مهم لأن وقت الساعة الجدارية — ما يبلغ عنه Date.now() — يمكن أن يقفز. تصحيحات NTP تدفعه قليلًا، وتحولات التوقيت الصيفي تغيره، ويمكن لمستخدم يغيّر ساعة النظام تحريكه بساعات في أي اتجاه.

ترث ساعة إيقاف تقرأ من وقت الساعة الجدارية كل تلك القفزات. إذا صادف أن تزامن NTP وقع في منتصف القياس، كان الفاصل المسجل لديك خاطئًا ببساطة، ولا شيء في الواجهة يشير إلى ذلك. المصدر الأحادي لا يملك نمط فشل كهذا: إنه غير متزامن مع أي شيء، ولا يمكن ضبطه، والشيء الوحيد الذي يقيسه هو الوقت المنقضي.

الجزئي مقابل الإجمالي، ولماذا يُعرضان معًا

يسجل كل صف رقمين. الإجمالي هو الوقت من البداية إلى تلك اللفة، والجزئي هو الوقت منذ اللفة السابقة. يجيبان عن أسئلة مختلفة، ومن الجدير أن تكون واضحًا حول أيٍّ منهما تقرأ.

عند توقيت عدّاء على ثماني لفات، يخبرك الجزئي ما إذا كان يحافظ على الوتيرة أو يتراجع أو يدفع بقوة — إنه الأداء لكل لفة. يخبرك الإجمالي بمكانته مقابل الوقت المستهدف للمسافة كلها. النظر إلى الإجمالي فقط يجعل التباطؤ صعب الملاحظة، لأن كل رقم يتضمن ما قبله؛ والنظر إلى الأجزاء فقط يفقد تتبع النتيجة الإجمالية. عرض الاثنين معًا يعني أنك تستطيع قراءة الوتيرة والتقدم من الجدول نفسه، ويحتفظ التصدير القابل للنسخ بالعمودين لأي شيء تلصق فيه.

يعمل بالكامل في متصفحك بـJavaScript خالص — لا مكتبات ولا رفع ولا تتبع.

الأسئلة الشائعة

ما مدى دقة المؤقت؟
يعرض المؤقت أجزاء المئة من الثانية والساعة الأساسية دون مستوى الميلي ثانية. عمليًا، الحد هو زمن رد فعلك على الزر، لا المؤقت.
هل يستمر في العمل إذا بدّلت التبويبات؟
نعم. يتوقف التحديث المرئي لأن المتصفحات تخنق تبويبات الخلفية، لكن الوقت المنقضي يُحسب من الطوابع الزمنية، لذا عند عودتك يعرض المؤقت القيمة الصحيحة فورًا.
ما الفرق بين الجزئي والإجمالي؟
يُقاس الإجمالي من بداية الجري إلى تلك اللفة. ويُقاس الجزئي من اللفة السابقة. تظهر الأجزاء الوتيرة؛ وتظهر الإجماليات التقدم مقابل الكل.
هل تُحفظ لفاتي إذا أعدت التحميل؟
لا. كل شيء يعيش في الذاكرة فقط، لذا يمسح إعادة التحميل كل شيء. انسخ قائمة اللفات قبل مغادرة الصفحة إذا احتجت للاحتفاظ بها.
ما هي اختصارات لوحة المفاتيح؟
المسافة تبدأ وتوقف مؤقتًا، وL تسجل لفة، وR تعيد التعيين. تُتجاهل أثناء الكتابة في حقل، فلن تنطلق بشكل غير متوقع.
هل يمكنني تسجيل لفة أثناء الإيقاف المؤقت؟
لا، الزر معطل. تحدد اللفة لحظة في قياس جارٍ، لذا فإن تسجيل واحدة بينما الساعة متوقفة سيكرر الإجمالي الحالي فقط.