Stopwatch Online

Stopwatch presisi dengan waktu jeda. Tekan Spasi untuk mulai/berhenti, L untuk waktu jeda.

00:00.00

Pintasan keyboard

Fitur

Cara kerjanya

  1. Mulai stopwatch: klik Mulai untuk meluncurkan stopwatch, ia mengukur waktu yang berlalu hingga milidetik.
  2. Catat waktu jeda: tekan "Waktu jeda" untuk mencatat split tanpa menghentikan stopwatch utama.
  3. Hentikan dan setel ulang: jeda kapan saja, lalu lanjutkan atau setel ulang ke nol. Waktu jeda bertahan hingga setel ulang.

Sejarah Singkat Stopwatch

Kronograf mekanis, leluhur dari setiap stopwatch modern, ditemukan oleh Louis Moinet pada 1816. Moinet membangun "Compteur de Tierces"-nya untuk mengukur waktu gerakan tampak bintang melintasi langit untuk pengamatan astronomi; ia dapat mengukur hingga 1/60 detik, presisi yang luar biasa untuk era itu. Kronograf komersial pertama mengikuti lima tahun kemudian: Nicolas Mathieu Rieussec mendemonstrasikan kronograf "inkscape spot"-nya di pacuan kuda Champ de Mars Paris pada 1 September 1821, kemudian mematenkannya pada 1822. Desain Rieussec menggunakan reservoir tinta kecil di ujung jarum pengatur waktu; menekan tombol saat mulai menjatuhkan setitik tinta pada posisi mulai, menekan lagi pada saat berhenti menjatuhkan titik kedua, dan jarak antara titik memberikan waktu yang berlalu. Adolphe Nicole mematenkan kronograf split-second (rattrapante) pada 1844, memungkinkan dua waktu split diukur secara bersamaan, inovasi penting untuk balapan di mana banyak pesaing menyelesaikan dalam hitungan detik. Mikrograph Heuer (1916) membawa presisi 1/100 detik ke kronograf mekanis tepat waktu untuk Olimpiade Antwerpen 1920, di mana ia digunakan sebagai pencatat waktu resmi. Revolusi kuarsa tiba dengan Astron Seiko pada Desember 1969 (jam tangan kuarsa komersial pertama); selama tahun 1980-an G-Shock Casio (1983) dan F-91W (1989) membuat stopwatch kuarsa murah, tahan lama dan di mana-mana. Jam atom modern seperti NIST-F1 (1999) dan NIST-F2 (2014) mencapai presisi sekitar satu detik dalam 300 juta tahun, jauh melampaui apa pun yang dibutuhkan jam tangan, tetapi standar terhadap mana semua waktu sipil dikalibrasi.

Pewaktuan JavaScript, Date.now() vs performance.now() vs requestAnimationFrame

Browser mengekspos tiga API berbeda untuk mengukur waktu, masing-masing dengan jaminan yang berbeda. Date.now() mengembalikan Unix milidetik sejak 1 Januari 1970, resolusi milidetik, tetapi jam sistem dapat melompat (perubahan waktu manual, koreksi NTP, persimpangan daylight saving time) yang membuatnya tidak dapat diandalkan untuk pengukuran waktu yang berlalu. performance.now() mengembalikan waktu sejak halaman dimulai, dalam milidetik dengan presisi pecahan sub-milidetik; itu monoton (tidak pernah mundur, kebal terhadap perubahan jam sistem), yang persis apa yang dibutuhkan stopwatch. Setelah pengungkapan Spectre/Meltdown pada awal 2018, browser mengurangi presisi default performance.now() dari sub-mikrodetik menjadi 100 mikrodetik (beberapa browser hingga 1 milidetik) untuk mengurangi serangan timing-side-channel; halaman cross-origin-isolated masih bisa mendapatkan resolusi 5-mikrodetik jika situs memilih masuk melalui header Cross-Origin-Opener-Policy dan Cross-Origin-Embedder-Policy. Untuk stopwatch, presisi default pasca-Spectre lebih dari cukup, manusia tidak dapat merasakan perbedaan waktu yang lebih halus dari sekitar 50ms dalam konteks UI. requestAnimationFrame bukan jam itu sendiri, ini adalah callback yang dipicu browser sekali per refresh tampilan (biasanya 60 kali per detik pada monitor 60Hz, 120 pada 120Hz). Untuk UI stopwatch, requestAnimationFrame adalah yang mendorong pembaruan tampilan yang halus; waktu yang berlalu itu sendiri berasal dari performance.now(). Pola standar: tangkap startTime = performance.now() pada Start, lalu pada setiap animation frame hitung elapsed = performance.now() - startTime dan render ulang tampilan.

Masalah Throttling Tab

Sumber bug yang terkenal dalam stopwatch berbasis browser adalah throttling tab latar belakang. Ketika tab kehilangan fokus (Anda beralih ke tab atau jendela lain), browser mengurangi tingkat di mana callback setTimeout, setInterval dan requestAnimationFrame dipicu, biasanya membatasi ke 1 detik antara panggilan terlepas dari interval yang diminta. Chrome 88 (Januari 2021) memperkenalkan mode "throttling intensif" yang bahkan lebih agresif yang mengurangi ke interval 1 menit setelah tab telah berada di latar belakang selama 5+ menit, untuk menghemat baterai laptop. Ini merusak stopwatch yang menambah counter pada setiap interval, counter tertinggal. Implementasi stopwatch yang benar, digunakan di sini, adalah menghitung waktu yang berlalu sebagai performance.now() - startTime pada setiap render daripada menambah counter pada setiap interval, perbedaan antara dua timestamp selalu akurat terlepas dari seberapa sering render dipicu. Tampilan akan terlihat beku pada tab latar belakang (karena render tidak dipicu), tetapi ketika Anda kembali ke tab waktu yang berlalu dihitung dengan benar dan tampilan melompat ke nilai yang tepat. Untuk timing latar belakang yang benar-benar akurat, pola Web Worker (menjalankan timer dalam thread worker, yang di-throttle kurang agresif daripada thread utama) adalah solusi standar; stopwatch alat ini fokus pada foreground sehingga pendekatan performance.now() dasar sudah cukup.

Waktu Lap vs Waktu Split, Perbedaan yang Diperhatikan Petugas Olimpiade

Dua konsep terkait tetapi berbeda yang membingungkan dalam pembicaraan sehari-hari. Waktu lap adalah durasi satu lap, waktu yang berlalu sejak penanda lap sebelumnya. Waktu split adalah total kumulatif pada checkpoint, waktu yang berlalu sejak awal. Dalam relay 4×400m, waktu lap setiap pelari adalah yang mereka jalankan secara pribadi; waktu split memberi tahu Anda bagaimana posisi kumulatif tim berkembang melintasi handoff. Dalam maraton, waktu split 5K memberi tahu Anda kecepatan pelari di setiap checkpoint, sementara interval lap-by-lap akan memberi tahu Anda konsistensi kecepatan mereka. Sistem pengaturan waktu Olimpiade menampilkan keduanya berdampingan. Stopwatch ini merekam keduanya: setiap entri lap menunjukkan interval lap (hanya lap ini) di satu kolom dan total kumulatif (split sejak awal) di kolom lain, sehingga Anda dapat membandingkan konsistensi atau kemajuan absolut tergantung pada apa yang Anda pedulikan. Tombol Lap merekam penanda; menekannya beberapa kali selama satu run menghasilkan daftar interval tak terbatas.

Use Case Umum

Batasan Akurasi Jujur

Stopwatch browser akurat hingga sekitar 10 milidetik saat berjalan di latar depan pada hardware modern, baik untuk workout, memasak, presentasi, permainan kelas, dan olahraga rekreasi. Itu bukan pengganti untuk: kronometri atletik bersertifikat (yang menggunakan kamera photo-finish dan sistem pengaturan waktu elektronik khusus dengan akurasi sub-milidetik dan jejak audit); pengaturan waktu lap yang disinkronkan GPS (motorsport, bersepeda); sistem pengaturan waktu balapan berpasangan Bluetooth nirkabel; atau apa pun di mana waktu menjadi catatan resmi yang diatur. Presisi pengaturan waktu platform web sengaja dikurangi setelah Spectre/Meltdown untuk mengurangi serangan side-channel; untuk penggunaan stopwatch ini tidak terlihat (manusia tidak dapat merasakan perbedaan) tetapi untuk pengukuran benchmark tingkat mikrodetik, Anda memerlukan header cross-origin-isolated. Untuk pengaturan waktu jangka panjang di mana tab mungkin kehilangan fokus, harapkan tampilan "beku" pada tab latar belakang tetapi menunjukkan waktu yang berlalu yang benar ketika Anda kembali, perhitungan menggunakan delta timestamp, bukan interval yang terakumulasi.

Menjaga Layar Tetap Hidup, Wake Lock API

Browser secara otomatis meredupkan dan akhirnya mematikan layar pada perangkat seluler setelah periode tidak aktif, yang tidak membantu ketika Anda menggunakan stopwatch untuk mengatur waktu workout dan layar kosong di tengah-tengah run. W3C Screen Wake Lock API memungkinkan halaman web meminta agar layar tetap menyala sementara halaman digunakan, didukung di Chrome sejak 84 (Juli 2020), Edge, Opera, dan Safari sejak 16.4 (Maret 2023), dengan Firefox ditambahkan di 126 (Mei 2024). Untuk stopwatch, pola tipikal adalah memperoleh wake lock ketika timer dimulai dan melepaskannya ketika timer berhenti atau halaman kehilangan visibilitas; ini mencegah layar memudar selama run panjang tanpa secara permanen menimpa pengaturan tampilan pengguna. Stopwatch mobile-first mendapat manfaat substansial dari integrasi Wake Lock; use case foreground alat ini jarang membutuhkannya, tetapi opsi ini layak diketahui untuk stopwatch yang dibangun sendiri.

Fitur

Pertanyaan yang Sering Diajukan

Seberapa tepat pengaturan waktunya?

Tampilan diperbarui 10 kali per detik (presisi sentidetik) dan perhitungan dasar menggunakan performance.now(), yang monoton dan akurat hingga sekitar 100 mikrodetik di browser modern (1 milidetik pada beberapa konfigurasi setelah mitigasi Spectre/Meltdown). Untuk workout, memasak, presentasi, dan olahraga rekreasi ini lebih dari cukup, manusia tidak dapat merasakan perbedaan waktu yang lebih halus dari sekitar 50ms dalam konteks UI. Bukan pengganti untuk kronometri atletik yang diatur, pengaturan waktu motorsport yang disinkronkan GPS, atau apa pun yang menjadi catatan resmi.

Mengapa tampilan membeku saat saya mengganti tab?

Throttling tab browser. Ketika tab kehilangan fokus, browser mengurangi tingkat di mana callback requestAnimationFrame dan timer dipicu, biasanya membatasi ke 1 detik antara panggilan, dan Chrome 88+ (Januari 2021) lebih lanjut mengurangi ke 1 menit setelah 5 menit tidak aktif untuk menghemat baterai. Tampilan tidak dapat diperbarui tanpa callback yang dipicu. Kabar baik: waktu yang berlalu itu sendiri dihitung dengan benar karena alat ini menggunakan delta timestamp (performance.now() - startTime) daripada interval yang terakumulasi, ketika Anda kembali ke tab, tampilan melompat ke waktu yang berlalu yang benar. Untuk pengaturan waktu latar belakang yang benar-benar akurat, pola Web Worker adalah solusi standar.

Bagaimana cara kerja waktu lap?

Menekan Lap merekam dua nilai: interval lap (waktu sejak lap sebelumnya, atau sejak awal jika ini lap pertama) dan total kumulatif (waktu sejak awal, juga disebut "split"). Keduanya ditampilkan berdampingan dalam tabel lap. Perbedaannya penting dalam atletik: interval lap memberi tahu Anda konsistensi kecepatan per-segmen, total kumulatif memberi tahu Anda kemajuan absolut terhadap waktu target. Tekan Lap sebanyak yang Anda butuhkan; tidak ada batas.

Bisakah saya jeda tanpa kehilangan waktu yang berlalu?

Ya, Stop menjeda timer pada nilai saat ini; klik Start lagi untuk melanjutkan dari tempat Anda berhenti. Reset menghapus semuanya (waktu yang berlalu dan semua catatan lap) dan kembali ke nol. Tabel lap bertahan melintasi siklus stop-and-resume sehingga Anda dapat meninjau dan mengekspor lap dari sesi pengaturan waktu multi-segmen.

Bisakah saya menjaga layar tetap menyala selama workout yang panjang?

Untuk pengaturan waktu olahraga jangka panjang di ponsel, perilaku default browser adalah meredupkan dan akhirnya mematikan layar, yang tidak membantu di tengah workout. W3C Screen Wake Lock API (Chrome 84+ Juli 2020, Safari 16.4+ Maret 2023, Firefox 126+ Mei 2024) memungkinkan halaman web meminta agar layar tetap menyala saat digunakan. Stopwatch ini saat ini tidak memanggil Wake Lock secara otomatis, untuk saat ini, solusinya adalah secara manual menyesuaikan timeout tidur layar telepon Anda, atau menggunakan aplikasi stopwatch asli perangkat untuk penggunaan olahraga jangka panjang.

Apakah data pengaturan waktu saya dikirim ke mana pun?

Tidak. Stopwatch berjalan sepenuhnya di browser Anda. Data pengaturan waktu Anda, waktu mulai, waktu lap, nilai yang berlalu saat ini, tidak pernah melintasi jaringan. Verifikasi di tab Network DevTools saat stopwatch berjalan, atau bawa halaman offline (mode pesawat) setelah dimuat dan stopwatch masih berfungsi dengan sempurna. Berguna untuk konteks pengaturan waktu apa pun di mana kerahasiaan penting: percobaan olahraga trek tertutup, benchmarking kinerja internal, dll.

Alat terkait