الدرس 8 من 8
ساعة إيقاف
- 15 دقيقة
- 6 معايير للتصحيح
- 3 تلميحات
- إلى المطلوب
هدف الدرس
الوقت من الساعة لا من العدّ
الشرح
أول ما يخطر لساعة إيقاف: setInterval كل عُشر ثانية يزيد عدّادًا. لكن مهلة setInterval حدّ أدنى لا موعد: تتأخّر النبضة حين تنشغل الصفحة، ويبطئ المتصفح المؤقّتات في الألسنة الخلفية إلى نبضة في الثانية — فعشر دقائق في الخلفية تصير دقيقة واحدة في العدّاد.
الصواب أن تحفظ لحظة البدء بـ Date.now()، وتحسب المنقضي بالطرح عند كل عرض. المؤقّت يقرّر متى تُحدَّث الشاشة فقط، لا كم مضى من الوقت.
انتبه: الاستئناف بعد الإيقاف يحتاج أن تحفظ ما تراكم قبله وتضيفه إلى الفترة الجديدة. وامنع التشغيل المزدوج: ضغطتان على «ابدأ» تصنعان مؤقّتين لا يُلغى إلا أحدهما.
المطلوب
اربط #start و#stop و#reset، واعرض في #time الثواني بمنزلة عشرية واحدة (0.0 ثم 1.3) محسوبة من Date.now(). و«صفّر» يوقف الساعة ويعيدها إلى 0.0.
معايير التصحيح
6 معايير- تبدأ من الصفر
- «ابدأ» يشغّل العدّ
- «أوقف» يجمّد الوقت
- الاستئناف يكمل من حيث توقّف
- «صفّر» يوقف ويعيد الصفر
- الوقت من الساعة لا من عدّ النبضات