跳到主要内容

免费番茄钟

用番茄工作法保持专注。自定义工作和休息时长、追踪完成的会话数,并在每个阶段结束时听到音频提示。

加载后可离线使用
25:00专注

快捷键:空格键开始/暂停 · R 重置 · S 跳过

快速预设(专注/休息)
0
今日番茄钟
0 / 4
轮次
0
专注分钟数

常见用途

  • 学习用番茄计时器使用番茄技术更有效地学习,在25分钟的专注会话中工作,休息5分钟。
  • 远程工作番茄计时器通过结构化番茄会话对抗在家工作的干扰。跟踪专注时间并强制定期休息。
  • 写作项目的番茄计时器使用番茄会话克服写作障碍并保持论文、报告或创意作品的写作势头。
  • 编程番茄计时器使用结构化专注会话更有效地编程,避免流状态中断同时确保定期休息。
  • 专注和ADHD的番茄计时器结构化工作间隔帮助患有ADHD的人保持专注,使困难的任务更易管理。

工作原理

此番茄钟完全在浏览器中运行,零外部库。倒计时使用 Date.now() 锚定到实际时钟时间戳,因此后台标签页的节流不会拖慢计时器;所有提示音都通过 Web Audio API 按需合成——不下载任何音频文件。

  1. 1
    基于实际时钟的倒计时引擎
    按下“开始”时,计时器会记录一个绝对的结束时间戳(Date.now() 加上剩余秒数)。setInterval 每 500 ms 用该固定终点减去当前时间,重新计算剩余秒数。如果浏览器对标签页进行节流,下一次触发时计算会自动校正。
  2. 2
    标签页聚焦时重新同步
    当你切回标签页时,visibilitychange 事件监听器会立即触发同一同步函数。这意味着显示会立即跳到正确的剩余时间,而不是等待下一个 500 ms 的触发——在标签页长时间处于后台时这一点很重要。
  3. 3
    Web Audio API 声音合成
    三种提示音(经典、钟声、数字)完全由浏览器内置的 AudioContext 生成——OscillatorNode 设置频率和波形类型(正弦波或方波),GainNode 应用指数音量斜坡来塑造包络。不获取或解码任何音频文件。
  4. 4
    设置与每日计数的持久化
    你自定义的时长和今天完成的番茄钟数量会分别写入 localStorage 的两个键中。页面加载时,工具会读回这些值,按允许的范围校验每个值,并恢复计时器——因此你的设置在页面刷新后仍会保留,无需任何服务器往返。

相关工具

常见问题