स्टॉपवॉच

लैप समय के साथ सटीक स्टॉपवॉच। शुरू/रोकने के लिए स्पेस दबाएँ, लैप के लिए L।

00:00.00

कीबोर्ड शॉर्टकट

विशेषताएँ

यह कैसे काम करता है

  1. स्टॉपवॉच शुरू करें: स्टॉपवॉच चलाने के लिए शुरू पर क्लिक करें, यह मिलीसेकंड तक बीता समय मापता है।
  2. अंतरालीय समय रिकॉर्ड करें: मुख्य स्टॉपवॉच रोके बिना स्प्लिट रिकॉर्ड करने के लिए "लैप" दबाएँ।
  3. रोकें और रीसेट करें: किसी भी समय रोकें, फिर फिर से शुरू करें या शून्य पर सेट करें। अंतरालीय समय बने रहते हैं।

स्टॉपवॉच का संक्षिप्त इतिहास

यांत्रिक क्रोनोग्राफ़, हर आधुनिक स्टॉपवॉच का पूर्वज, Louis Moinet ने 1816 में आविष्कार किया था। Moinet ने अपना «Compteur de Tierces» खगोलीय अवलोकन के लिए आकाश में तारों की दिखाई देती गति को मापने के लिए बनाया था; यह 1/60 सेकंड तक माप सकता था-उस युग के लिए एक असाधारण परिशुद्धता। पहला वाणिज्यिक क्रोनोग्राफ़ पाँच वर्ष बाद आया: Nicolas Mathieu Rieussec ने 1 सितंबर 1821 को पेरिस के Champ de Mars घुड़दौड़ में अपना «स्याही-छाप» क्रोनोग्राफ़ प्रदर्शित किया, और 1822 में इसका पेटेंट कराया। Rieussec के डिज़ाइन में टाइमिंग हाथ की नोक पर एक छोटा स्याही-कुंड था; प्रारंभ पर बटन दबाने से शुरुआती स्थिति पर स्याही का एक धब्बा गिरता, रुकने पर दूसरा धब्बा, और धब्बों के बीच की दूरी बीते समय को बताती। Adolphe Nicole ने 1844 में स्प्लिट-सेकंड (rattrapante) क्रोनोग्राफ़ का पेटेंट कराया, जिसने एक साथ दो स्प्लिट समय मापने की सुविधा दी-उन दौड़ों के लिए एक आलोचनात्मक नवाचार जहाँ कई प्रतिस्पर्धी सेकंडों के भीतर समाप्त करते थे। Heuer का Mikrograph (1916) 1920 के एंटवर्प ओलंपिक के समय पर यांत्रिक क्रोनोग्राफ़ों में 1/100 सेकंड परिशुद्धता ले आया, जहाँ इसका उपयोग आधिकारिक समय-संकेतक के रूप में हुआ। क्वार्ट्ज़ क्रांति दिसंबर 1969 में Seiko के Astron (पहली वाणिज्यिक क्वार्ट्ज़ कलाई घड़ी) के साथ आई; 1980 के दशक में Casio के G-Shock (1983) और F-91W (1989) ने क्वार्ट्ज़ स्टॉपवॉच को सस्ती, टिकाऊ और सर्वव्यापी बना दिया। आधुनिक परमाणु घड़ियाँ जैसे NIST-F1 (1999) और NIST-F2 (2014) लगभग 30 करोड़ वर्ष में एक सेकंड की परिशुद्धता हासिल करती हैं-किसी भी कलाई घड़ी की ज़रूरत से कहीं परे, लेकिन वही मानक जिसके आधार पर सभी नागरिक समय अंशांकित होते हैं।

JavaScript टाइमिंग-Date.now() vs performance.now() vs requestAnimationFrame

ब्राउज़र समय मापने के लिए तीन अलग-अलग APIs उजागर करते हैं, हर एक की गारंटियाँ अलग। Date.now() 1 जनवरी 1970 से Unix मिलीसेकंड लौटाता है-मिलीसेकंड रिज़ॉल्यूशन, पर सिस्टम घड़ी छलाँग लगा सकती है (मैन्युअल समय परिवर्तन, NTP सुधार, डेलाइट सेविंग समय क्रॉसिंग) जो इसे बीते समय के मापन के लिए अविश्वसनीय बनाता है। performance.now() पेज शुरू होने से समय लौटाता है, उप-मिलीसेकंड भिन्न परिशुद्धता वाले मिलीसेकंड में; यह monotonic है (कभी पीछे नहीं जाता, सिस्टम घड़ी परिवर्तनों से प्रतिरक्षित), जो स्टॉपवॉच को बिल्कुल चाहिए। 2018 की शुरुआत में Spectre/Meltdown के खुलासे के बाद, ब्राउज़रों ने performance.now() की डिफ़ॉल्ट परिशुद्धता उप-माइक्रोसेकंड से 100 माइक्रोसेकंड (कुछ ब्राउज़र 1 मिलीसेकंड तक) तक कम कर दी ताकि टाइमिंग-साइड-चैनल हमलों को कम किया जा सके; क्रॉस-ओरिजिन-आइसोलेटेड पेज अभी भी 5-माइक्रोसेकंड रिज़ॉल्यूशन पा सकते हैं अगर साइट Cross-Origin-Opener-Policy और Cross-Origin-Embedder-Policy हेडरों के माध्यम से opt-in करे। स्टॉपवॉच के लिए, Spectre-बाद की डिफ़ॉल्ट परिशुद्धता भरपूर है-मनुष्य UI संदर्भ में लगभग 50ms से बारीक टाइमिंग अंतर महसूस नहीं कर सकते। requestAnimationFrame अपने आप में घड़ी नहीं है-यह एक कॉलबैक है जिसे ब्राउज़र प्रति डिस्प्ले रिफ़्रेश एक बार फायर करता है (आम तौर पर 60Hz मॉनिटर पर 60 बार प्रति सेकंड, 120Hz पर 120)। स्टॉपवॉच UI के लिए, requestAnimationFrame ही सुचारू डिस्प्ले अपडेट चलाता है; बीता समय स्वयं performance.now() से आता है। मानक पैटर्न: Start पर startTime = performance.now() कैप्चर करें, फिर हर एनिमेशन फ्रेम पर elapsed = performance.now() - startTime गणना करें और डिस्प्ले को फिर से रेंडर करें।

टैब-थ्रॉटलिंग की समस्या

ब्राउज़र-आधारित स्टॉपवॉच में बग का एक प्रसिद्ध स्रोत बैकग्राउंड टैब थ्रॉटलिंग है। जब एक टैब फ़ोकस खोता है (आप दूसरे टैब या विंडो पर जाते हैं), ब्राउज़र setTimeout, setInterval और requestAnimationFrame कॉलबैकों के फायर होने की दर को कम करते हैं-आमतौर पर अनुरोधित अंतराल की परवाह किए बिना कॉलों के बीच 1 सेकंड तक clamping। Chrome 88 (जनवरी 2021) ने और भी आक्रामक «intensive throttling» मोड पेश किया जो टैब के 5+ मिनट बैकग्राउंड में रहने के बाद 1-मिनट अंतराल तक कम कर देता है, ताकि लैपटॉप पर बैटरी बचाई जा सके। यह हर उस स्टॉपवॉच को तोड़ देता है जो प्रत्येक अंतराल पर एक काउंटर बढ़ाती है-काउंटर पीछे रह जाता है। यहाँ उपयोग किया गया सही स्टॉपवॉच कार्यान्वयन है, प्रत्येक रेंडर पर बीते समय को performance.now() - startTime के रूप में गणना करना बजाय प्रत्येक अंतराल पर काउंटर बढ़ाने के-दो टाइमस्टैम्प के बीच का अंतर हमेशा सटीक होता है चाहे रेंडर कितनी बार फायर हो। बैकग्राउंडेड टैब पर डिस्प्ले फ्रोज़न दिखेगा (क्योंकि रेंडर फायर नहीं हो रहा), पर जब आप टैब पर लौटते हैं तो बीता समय सही ढंग से गणना होता है और डिस्प्ले सही मान पर कूद जाता है। वास्तव में सटीक बैकग्राउंड टाइमिंग के लिए, Web Worker पैटर्न (वर्कर थ्रेड में टाइमर चलाना, जो मुख्य थ्रेड की तुलना में कम आक्रामक रूप से थ्रॉटल होता है) मानक समाधान है; इस उपकरण की स्टॉपवॉच फ़ोरग्राउंड-केंद्रित है इसलिए मूल performance.now() दृष्टिकोण पर्याप्त है।

लैप समय vs स्प्लिट समय-वह भेद जिसका ओलंपिक अधिकारी ध्यान रखते हैं

रोज़मर्रा की भाषा में दो संबंधित पर अलग अवधारणाएँ भ्रमित हो जाती हैं। एक लैप समय एकल लैप की अवधि है-पिछले लैप मार्कर से बीता समय। एक स्प्लिट समय चेकपॉइंट पर संचयी कुल है-बिल्कुल शुरू से बीता समय। 4×400m रिले में, प्रत्येक धावक का लैप समय वह है जो उसने व्यक्तिगत रूप से दौड़ा; स्प्लिट समय आपको बताते हैं कि टीम की संचयी स्थिति हैंडऑफ़ों के बीच कैसे विकसित हुई। मैराथन में, 5K स्प्लिट समय आपको प्रत्येक चेकपॉइंट पर धावक की गति बताते हैं, जबकि लैप-दर-लैप अंतराल आपको उनकी गति की संगति बताएंगे। ओलंपिक टाइमिंग सिस्टम दोनों को साथ-साथ दिखाते हैं। यह स्टॉपवॉच दोनों रिकॉर्ड करती है: प्रत्येक लैप प्रविष्टि एक कॉलम में लैप अंतराल (केवल यह लैप) दिखाती है और दूसरे कॉलम में संचयी कुल (शुरू से स्प्लिट), तो आप अपनी रुचि के अनुसार संगति या निरपेक्ष प्रगति की तुलना कर सकते हैं। Lap बटन मार्कर रिकॉर्ड करता है; एकल दौड़ के दौरान इसे कई बार दबाने से अंतरालों की असीमित सूची मिलती है।

सामान्य उपयोग के मामले

ईमानदार परिशुद्धता की सीमाएँ

आधुनिक हार्डवेयर पर फ़ोरग्राउंड में चलते समय एक ब्राउज़र स्टॉपवॉच लगभग 10 मिलीसेकंड तक सटीक है-व्यायाम, खाना पकाने, प्रस्तुतियों, कक्षा खेलों और मनोरंजक खेलों के लिए ठीक। यह निम्न के लिए विकल्प नहीं है: प्रमाणित एथलेटिक्स क्रोनोमेट्री (जो फ़ोटो-फिनिश कैमरे और उप-मिलीसेकंड परिशुद्धता और ऑडिट ट्रेल वाले समर्पित इलेक्ट्रॉनिक टाइमिंग सिस्टम का उपयोग करता है); GPS-सिंक्रोनाइज़्ड लैप टाइमिंग (मोटरस्पोर्ट, साइकलिंग); वायरलेस ब्लूटूथ-पेयर्ड रेस टाइमिंग सिस्टम; या कुछ भी जहाँ समय एक विनियमित आधिकारिक रिकॉर्ड बन जाता है। वेब प्लेटफ़ॉर्म की टाइमिंग परिशुद्धता Spectre/Meltdown के बाद साइड-चैनल हमलों को कम करने के लिए जानबूझकर कम की गई थी; स्टॉपवॉच उपयोग के लिए यह अदृश्य है (मनुष्य अंतर महसूस नहीं कर सकते) पर बेंचमार्क माइक्रोसेकंड-स्तर के मापन के लिए आपको क्रॉस-ओरिजिन-आइसोलेटेड हेडर चाहिए। लंबी अवधि के टाइमिंग के लिए जहाँ टैब फ़ोकस खो सकता है, उम्मीद करें कि बैकग्राउंडेड टैब पर डिस्प्ले «फ़्रीज़» हो जाएगा पर लौटने पर सही बीता समय दिखाएगा-गणना टाइमस्टैम्प डेल्टा का उपयोग करती है, संचित अंतरालों का नहीं।

स्क्रीन को चालू रखना-Wake Lock API

ब्राउज़र मोबाइल उपकरणों पर निष्क्रियता की अवधि के बाद स्वचालित रूप से स्क्रीन को मद्धिम करते हैं और अंततः बंद कर देते हैं, जो उस समय अनुपयोगी है जब आप व्यायाम का समय मापने के लिए स्टॉपवॉच का उपयोग कर रहे हों और स्क्रीन दौड़ के बीच में खाली हो जाए। W3C Screen Wake Lock API एक वेब पेज को यह अनुरोध करने देता है कि पेज उपयोग में रहने के दौरान स्क्रीन चालू रहे-Chrome 84 (जुलाई 2020), Edge, Opera, और Safari 16.4 (मार्च 2023) से समर्थित, Firefox 126 (मई 2024) में जोड़ा गया। स्टॉपवॉच के लिए, विशिष्ट पैटर्न है टाइमर शुरू होने पर wake lock प्राप्त करना और टाइमर रुकने पर या पेज दृश्यता खोने पर इसे जारी करना; यह उपयोगकर्ता की डिस्प्ले सेटिंग्स को स्थायी रूप से ओवरराइड किए बिना लंबी दौड़ों के दौरान स्क्रीन को खाली होने से रोकता है। Mobile-first स्टॉपवॉच Wake Lock एकीकरण से काफ़ी लाभान्वित होते हैं; इस उपकरण के फ़ोरग्राउंड उपयोग मामले को शायद ही इसकी आवश्यकता हो, पर स्व-निर्मित स्टॉपवॉच के लिए विकल्प जानना सार्थक है।

विशेषताएँ

अक्सर पूछे जाने वाले प्रश्न

टाइमिंग कितनी सटीक है?

डिस्प्ले प्रति सेकंड 10 बार अपडेट होता है (सेंटीसेकंड परिशुद्धता) और अंतर्निहित गणना performance.now() का उपयोग करती है, जो monotonic है और आधुनिक ब्राउज़रों में लगभग 100 माइक्रोसेकंड तक सटीक है (Spectre/Meltdown शमन के बाद कुछ कॉन्फ़िगरेशन पर 1 मिलीसेकंड)। व्यायाम, खाना पकाने, प्रस्तुतियों और मनोरंजक खेलों के लिए यह भरपूर है-मनुष्य UI संदर्भ में लगभग 50ms से बारीक टाइमिंग अंतर महसूस नहीं कर सकते। विनियमित एथलेटिक्स क्रोनोमेट्री, GPS-सिंक्रोनाइज़्ड मोटरस्पोर्ट टाइमिंग, या कुछ भी जो आधिकारिक रिकॉर्ड बनता है, के लिए विकल्प नहीं।

जब मैं टैब बदलता हूँ तो डिस्प्ले क्यों फ़्रीज़ हो जाता है?

ब्राउज़र टैब थ्रॉटलिंग। जब एक टैब फ़ोकस खोता है, ब्राउज़र requestAnimationFrame और टाइमर कॉलबैकों के फायर होने की दर को कम करते हैं-आमतौर पर कॉलों के बीच 1 सेकंड तक clamping, और Chrome 88+ (जनवरी 2021) बैटरी बचाने के लिए 5 मिनट की निष्क्रियता के बाद इसे आगे 1 मिनट तक कम करता है। बिना फ़ायर हुए कॉलबैक के डिस्प्ले अपडेट नहीं हो सकता। अच्छी खबर: बीता समय स्वयं सही ढंग से गणना होता है क्योंकि यह उपकरण संचित अंतरालों के बजाय टाइमस्टैम्प डेल्टा (performance.now() - startTime) का उपयोग करता है-जब आप टैब पर लौटते हैं, डिस्प्ले सही बीते समय पर कूद जाता है। वास्तव में सटीक बैकग्राउंड टाइमिंग के लिए, Web Worker पैटर्न मानक समाधान है।

लैप समय कैसे काम करते हैं?

Lap दबाना दो मान रिकॉर्ड करता है: लैप अंतराल (पिछले लैप से समय, या यदि यह पहला लैप है तो शुरू से) और संचयी कुल (शुरू से समय, जिसे «स्प्लिट» भी कहते हैं)। दोनों लैप तालिका में साथ-साथ दिखाए जाते हैं। एथलेटिक्स में यह अंतर महत्वपूर्ण है: लैप अंतराल आपको प्रति-खंड गति की संगति बताता है, संचयी कुल लक्ष्य समय के विरुद्ध निरपेक्ष प्रगति बताता है। जितनी बार चाहिए Lap दबाएँ; कोई सीमा नहीं है।

क्या मैं बीते समय को खोए बिना रोक सकता हूँ?

हाँ-Stop टाइमर को वर्तमान मान पर रोकता है; आप जहाँ रुके वहाँ से फिर से शुरू करने के लिए Start फिर से क्लिक करें। Reset सब कुछ साफ़ कर देता है (बीता समय और सभी लैप रिकॉर्ड) और शून्य पर लौट आता है। लैप तालिका stop-and-resume चक्रों के पार बनी रहती है ताकि आप मल्टी-सेगमेंट टाइमिंग सत्र से लैप की समीक्षा और निर्यात कर सकें।

क्या मैं लंबे व्यायाम के दौरान स्क्रीन चालू रख सकता हूँ?

फ़ोन पर लंबी अवधि के खेल समय मापन के लिए, ब्राउज़र का डिफ़ॉल्ट व्यवहार है स्क्रीन को मद्धिम करना और अंततः बंद करना, जो व्यायाम के बीच में अनुपयोगी है। W3C Screen Wake Lock API (Chrome 84+ जुलाई 2020, Safari 16.4+ मार्च 2023, Firefox 126+ मई 2024) एक वेब पेज को उपयोग में रहने के दौरान स्क्रीन चालू रखने का अनुरोध करने देता है। यह स्टॉपवॉच फ़िलहाल Wake Lock को स्वचालित रूप से नहीं बुलाती-अभी के लिए, समाधान है अपने फ़ोन के स्क्रीन-स्लीप टाइमआउट को मैन्युअल रूप से समायोजित करना, या लंबी अवधि के खेल उपयोग के लिए डिवाइस के मूल स्टॉपवॉच ऐप का उपयोग करना।

क्या मेरा टाइमिंग डेटा कहीं भेजा जाता है?

नहीं। स्टॉपवॉच पूरी तरह आपके ब्राउज़र में चलती है। आपका टाइमिंग डेटा-शुरू समय, लैप समय, वर्तमान बीता मान-कभी नेटवर्क पार नहीं करता। स्टॉपवॉच के चलने के दौरान DevTools के Network टैब में सत्यापित करें, या लोड होने के बाद पृष्ठ को ऑफ़लाइन (एयरप्लेन मोड) करें और स्टॉपवॉच अभी भी पूरी तरह काम करती है। किसी भी टाइमिंग संदर्भ के लिए उपयोगी जहाँ गोपनीयता मायने रखती है: बंद-ट्रैक खेल परीक्षण, आंतरिक प्रदर्शन बेंचमार्किंग, आदि।

संबंधित टूल