🍅
免費番茄鍾
用番茄工作法保持專注。自定義工作和休息時長、追蹤完成的會話數,並在每個階段結束時聽到音訊提示。
載入後可離線使用
25:00專注
快捷鍵:空格鍵開始/暫停 · R 重設 · S 跳過
快速預設(專注/休息)
0
今日番茄鍾
0 / 4
輪次
0
專注分鐘數
工作原理
此番茄鍾完全在瀏覽器中執行,零外部庫。倒數計時使用 Date.now() 錨定到實際時鐘時間戳,因此後台標籤頁的節流不會拖慢計時器;所有提示音都透過 Web Audio API 按需合成——不下載任何音訊檔案。
- 1基於實際時鐘的倒數計時引擎按下“開始”時,計時器會記錄一個絕對的結束時間戳(Date.now() 加上剩餘秒數)。setInterval 每 500 ms 用該固定終點減去當前時間,重新計算剩餘秒數。如果瀏覽器對標籤頁進行節流,下一次觸發時計算會自動校正。
- 2標籤頁聚焦時重新同步當你切回標籤頁時,visibilitychange 事件監聽器會立即觸發同一同步函式。這意味著顯示會立即跳到正確的剩餘時間,而不是等待下一個 500 ms 的觸發——在標籤頁長時間處於後台時這一點很重要。
- 3Web Audio API 聲音合成三種提示音(經典、鐘聲、數字)完全由瀏覽器內建的 AudioContext 產生——OscillatorNode 設定頻率和波形型別(正弦波或方波),GainNode 應用指數音量斜坡來塑造包絡。不取得或解碼任何音訊檔案。
- 4設定與每日計數的持久化你自定義的時長和今天完成的番茄鍾數量會分別寫入 localStorage 的兩個鍵中。頁面載入時,工具會讀回這些值,按允許的範圍校驗每個值,並恢復計時器——因此你的設定在頁面重新整理後仍會保留,無需任何伺服器往返。