TimePulse:免註冊的多計時器倒數網頁,資料留在瀏覽器

TimePulse 是免註冊的倒數計時網頁應用,支援多計時器、正計時與世界時鐘,計時資料存在瀏覽器本地,可安裝成 PWA 離線使用。實測發現雲端同步會把整份資料連同明文密碼傳到開發者自架的快取服務,分享連結的內容也會隨內建統計外送,這篇整理完整資料流向、節日清單的台灣適用性與無授權條款的影響。

用 AI 摘要這篇文章:

期末考週、演唱會開賣、專案上線日、連假出發,這些日期常常同時在倒數。常見的線上倒數工具一次只給一組,換一個目標就要重填,關掉分頁設定跟著消失;手機倒數 App 能存資料,卻要先安裝、多半還要註冊帳號。2026 年 9 月我實際在瀏覽器裡操作 TimePulse 這套網頁工具,建立倒數、展開節日清單、產生分享連結,也翻過它的原始碼。最快的結論先講:它把多計時器、正計時、世界時鐘裝進同一個不用註冊的網頁,計時資料存在瀏覽器本地;但雲端同步跟內建統計是兩條不同的對外路徑,開啟之前值得先弄清楚各自送出了什麼。

一個網頁裝三種計時器,功能狀態掛在網址上

TimePulse 是用 Next.js 寫的前端專案,作者 RavelloH 是長期維護多個工具網站的獨立開發者,GitHub 位置標註在香港。計時器有三種類型:設定目標時間往回數的倒數、從零往上累加的正計時(支援分段計次,按一次記一筆,適合實驗計時、運動組間休息)、以及一次看多個時區的世界時鐘。我實測建立了一顆名為期末考週的倒數計時器:按下新增會先跳出一個選類型的視窗,選倒數後進入設定表單,填名稱、選日期、選顏色,送出後計時器立刻出現在清單列,全程沒有出現任何註冊或登入欄位。世界時鐘的常用城市涵蓋 UTC+8、日韓、東南亞、歐美與大洋洲約二十個城市,再往下展開才是完整時區。

有個設計細節比較少見:功能的開關狀態直接掛在網址的 hash 上。按下新增按鈕,網址尾巴多出 add 標記;按分享、開同步視窗各有自己的標記。這代表你可以把書籤直接存在某個功能入口,打開就停在那個視窗,不必每次從首頁一層層點進去。頂欄的按鈕平時會自動隱藏,滑鼠移過去才浮出來,畫面因此很乾淨,代價是第一次使用會有幾秒找不到按鈕在哪。

它也是漸進式網頁應用(PWA,一種可以安裝到桌面或手機主畫面、離線也能開的網頁格式)。瀏覽器安裝之後,沒有網路時倒數照樣走,因為計時與儲存都發生在你的瀏覽器裡;頁尾還有一個更新快取按鈕,版本更新時可以自己觸發抓取。執行日誌也是攤在頁尾的:載入了幾顆計時器、存了什麼、有沒有跳過雲端同步,一行一行寫在那裡,這種把內部狀態直接亮給使用者看的做法,在同類工具裡算少見的坦白。

兩個要先適應的地方。介面語言只有簡體中文跟英文,沒有繁體中文,所有選單與提示都是簡體版面。無障礙標記做了前半段:下拉選單元件有完整的 ARIA 標記(讓螢幕報讀軟體辨識控制的屬性),鍵盤也能操作主要流程,但頂欄那排只有圖示、沒有文字的按鈕,全部沒有加上報讀用的標籤,依賴報讀軟體的人會卡在這裡。

節日快捷清單:農曆節日直接能用,台灣特定日期要自己填

新增倒數時有個選擇常用節日的快捷清單,點開會列出從今天最近的節日一路滾到隔年,每個節日附一個顏色圓點,點下去名稱、日期、顏色三個欄位就自動填好。我在 2026 年 9 月展開這份清單,第一項是 2026 年 9 月 10 日的教師節,最後一項是 2027 年的臘八。

TimePulse 建立倒數視窗的節日快捷清單,列出教師節、中秋節、國慶節到萬聖節等項目,每項附顏色圓點(官方網站截圖)Pin
TimePulse 官方站的節日快捷清單:農曆節日與中國大陸節日混在同一份列表,台灣特定日期不在其中(2026 年 9 月實測截圖)

這份清單對台灣使用者是兩面刃。能用的一面:清單裡的農曆節日,春節、元宵、端午、七夕、中元、中秋、重陽、臘八,全部內建了農曆轉國曆的換算,過幾年日期飄移也不用自己查萬年曆;母親節、父親節、感恩節這種浮動日期的節日同樣預先算好;連清明都用節氣公式直接算出每年落在 4 月 4 日或 5 日,不是寫死的日期。要留意的一面:清單混入了中國大陸的法定與政治節日,像 10 月 1 日國慶、7 月 1 日建黨節、8 月 1 日建軍節、5 月 4 日青年節,而台灣特有的日期一個都沒有。第一次打開網站時,預設就送你一顆 2026 年 9 月 10 日教師節的倒數,這天是對岸的教師節,台灣的教師節在 9 月 28 日。

時區這關倒是處理得乾淨。建立計時器時的時區欄位自動帶入 Asia/Taipei,目標時間依你的時區計算,世界時鐘也用同一套時區邏輯,台北、東京、倫敦可以同時掛著看。如果只是想要一張看得整年的節日表,VIPCalendar 免費日曆做的可列印年曆比倒數工具更對題;兩者拿來搭配用剛好。

資料留在瀏覽器,同步是另一道自己打開的門

沒有設定同步的時候,計時器資料完全存在瀏覽器的 localStorage(網站存在你電腦上的本地儲存空間)。我把 localStorage 的內容倒出來看,就是一個計時器陣列,每筆帶名稱、目標時間、時區、顏色、建立時間。執行日誌也兩度明寫:未設定同步資訊,跳過雲端同步。換句話說,光開網站建倒數,計時內容不會離開你的瀏覽器。

多裝置同步是另一回事,而且要自己開啟。按下雲同步後,工具會產生一組識別碼跟一個 8 個字元的密碼,接著把你全部的計時器打包上傳。我讀原始碼確認了這條路的細節:上傳是一個 POST 請求,送到 cache.ravelloh.top 這個網址,這是作者自己架的快取服務,不是什麼大型雲端服務;請求內容除了整份計時器資料,還帶著識別碼、以明文形式直接放在請求裡的密碼,以及一個設成允許所有 IP 存取的參數。保存時帶 30 天的期限參數,資料在對方伺服器上放多久,取決於這個參數與服務端的處理方式。密碼的產生方式也值得知道:用的是程式語言的一般亂數函式,不是密碼學等級的亂數源,8 個字元的強度就以一般亂數的水準來看。

有一點對在意透明度的人算加分:這個快取服務的本體 kv-cache 也是同一作者放在 GitHub 上的公開專案,至今仍持續更新,理論上任何人都能讀服務端程式碼。當然,原始碼公開跟官方站實際跑的是哪個版本是兩回事,後者無從查證。

同步的分享連結更容易漏看:識別碼跟密碼會一起放進網址的查詢字串,對方打開連結,同步設定就自動匯入他的瀏覽器。拿到這條連結的人,等於同時拿到你同步資料的鑰匙。方向上,設好同步的裝置在斷線恢復後會自動抓遠端最新資料,計時器一有增刪修改,半秒內也會自動上傳雲端,同步視窗裡另留的手動上傳按鈕只是備位。換句話說,開了同步,你的計時器清單就是持續鏡像到對方伺服器的狀態,不是想傳才傳。

我的判斷是:這套同步的定位是方便,達不到隱私工具的標準。資料上傳到的是作者個人網域上的服務,這個服務會開多久、怎麼管理,外部無從查證,重視這層的人就把同步關著,單機使用。同樣把使用者資料留在瀏覽器本地的做法,PromptHelper 提示詞管理腳本是另一個走這條路的工具,可以對照著看。

分享連結免帳號,但整段內容就寫在網址上

分享功能不需要任何帳號,也不經過伺服器。它的做法是把計時器的名稱、類型、顏色、目標時間這些欄位打包成 JSON,編碼成 Base64 字串,直接塞進網址的查詢參數。可以只分享指定的某一顆,也可以勾選一次分享全部。對方打開連結,瀏覽器把網址裡的字串解開,計時器就還原到他自己的清單裡。

我拿自己建立的期末考週測試,把產生的分享網址解碼,內容就是一段 JSON:計時器名稱寫著期末考週,目標時間、顏色色碼、識別碼都在裡面。接著我在一個全新的瀏覽器環境打開這條連結,計時器確實完整匯入,開始倒數。這個機制的好處很清楚:沒有伺服器、沒有帳號、對方不用安裝任何東西,掃個連結旁邊附的 QR 碼就能收。

TimePulse 分享計時器視窗,可選擇要分享的倒數項目,畫面顯示分享連結與 QR 碼(官方網站截圖)Pin
分享視窗:選定計時器後產生內含資料的分享連結與 QR 碼,對方掃碼即可匯入(2026 年 9 月實測截圖)

要理解分享的另一個性質:它是快照,不是同步。對方拿到的是你按下分享那一刻的內容,匯入之後就長在他自己的瀏覽器裡,你事後改名、改日期、刪掉,他那邊都不會跟著動。拿來約定一個共同日期很夠用,想當作持續同步的頻道則會失望。到期提醒倒是內建的:第一次使用會詢問瀏覽器通知權限,允許之後倒數歸零會跳系統通知,分頁沒開著的情境就看瀏覽器對背景通知的處理。

代價同樣清楚。Base64 是編碼,任何拿到連結的人都能在幾秒內解出原始內容,你的活動名稱跟日期等於明寫在網址上。分享演唱會開賣、專案上線這種公開活動完全沒問題;私人行程就要想一下再產生連結。另外原始碼裡有個提醒:分享內容超過 2000 字元時只在瀏覽器開發者主控台留警告,畫面上不會提示,一次分享太多顆計時器,QR 碼可能生成失敗或連結過長,你會不知道原因。

打開別人分享的連結,統計服務會看到整段內容

實測過程最讓我意外的發現在這裡。TimePulse 的每一頁都載入一套叫 InsightFlare 的統計腳本,伺服器在 insight.ravelloh.com,看網域就是作者自營的統計服務。我把瀏覽器的對外請求錄下來看,每次造訪都會發一個收集請求出去,內容包含:一組存在 localStorage 裡、跨造訪不會換的訪客識別碼;本次造訪的識別碼;你開的路徑、完整的查詢字串、功能標記;語言、時區、螢幕長寬、來源網址。建立計時器、選節日這類操作也埋了對應的事件標記,不過事件帶的數值經過分組處理,例如計時長度只送落在哪個區間,不送原始數字。

問題出在查詢字串這一項。分享連結的資料就放在查詢字串裡,所以當任何人打開一條分享連結,那個收集請求會把整段 Base64 分享內容原封不動地一起送出去。我實測的這條請求,查詢字串欄位就是完整的期末考週計時器內容。也就是說,分享機制本身不經伺服器是真的,但收件人打開連結的那個瞬間,你們分享的內容會跟著統計資料一起外送一份到作者的統計伺服器。

這不必然是惡意,自營統計是個人專案的常見做法,收集的欄位也屬於流量分析的典型範圍,多數網站掛的第三方統計做得只多不少。但如果你分享的倒數帶著敏感資訊,例如面試日期、私下活動,這條外送路徑應該列入考慮。資料流向要自己拆開看:不開同步、不產生分享連結,計時內容就留在本地;一旦用了分享,內容至少會多一份存在統計伺服器的請求紀錄裡。

授權欄是空的:能用能看,改作之前要問過作者

TimePulse 的原始碼放在 GitHub 上,任何人都能看,專案從 2025 年 3 月開始,到實測當天累積 123 個星標,最後一次提交在 2026 年 5 月,當年 1 月發布的 0.6.0 版提供了預先建好的靜態網站包,想自己找地方放的人不用裝任何開發工具。維護節奏屬於個人專案的正常水位,不是棄坑,也稱不上高頻更新。

關鍵在授權,而且這裡有個矛盾要看清楚。README 結尾寫著採 MIT 授權,但倉庫裡沒有 LICENSE 檔案,GitHub 的授權偵測也顯示無授權。宣告跟檔案對不起來時,嚴格來說授權狀態就是未明確:多數人會把 README 那行當成善意宣告,實務上大概也成立;但授權條款這種東西的價值在於它有明確的條文可以依循,缺了那個檔案,要修改、再散布或拿去商用的人就少了一層保障。純粹打開官方站使用完全無感;想把它的程式碼放進自己的產品,先找作者把授權補齊是比較穩當的路。

使用中可能撞到的已知問題,追蹤庫裡有一筆具體的:把目標年份設到很久以後,倒數天數會顯示不全。其餘待修的項目多是功能訴求,回應速度就是個人專案的節奏,遇到只能繞道,例如把跨度太長的倒數拆成兩段。另外有個設計上的限制要先想清楚:資料的唯一家就是瀏覽器的 localStorage,介面裡沒有匯出備份的按鈕。清掉瀏覽器資料、換一台電腦,計時器就跟著消失;想把清單搬走,能用的路只有分享連結,或者自己去瀏覽器設定裡把 localStorage 的內容複製出來。對照常見工具會給的 JSON 匯出,這裡確實少了這麼一塊。

單機免註冊追日期剛好,三種需求會碰壁

整理成一個簡單的決策。適合用 TimePulse 的人:手上同時有好幾個日期要追、不想為了倒數裝 App 辦帳號、能接受簡體版面,而且打算單機使用的人。這個情境下它給的東西剛好:免註冊、多計時器、資料在本地、介面有認真做視覺,毛玻璃卡片配上會隨主題色變化的漸層背景,好看與否見仁見智,但看得出有花功夫,深淺主題也會跟著系統自動切換。

不適合的人也明確:需要繁體中文介面的、需要真正有加密保護的多裝置同步的、想把原始碼拿去改作商用的。這三種需求 TimePulse 目前都給不了,前兩種要等作者補,第三種要等授權。

我自己的用法會是:線上版、不開同步,分享只留給公開活動。私人行程就讓它安安靜靜待在 localStorage 裡倒數,到期的推播通知在瀏覽器允許的前提下也能收。如果你要的其實是工作用的專注計時而不是日期倒數,Lofi Radio Web 播放器把專注計時跟背景音樂收在一起,會比倒數工具更貼近那個需求;粗估內容長度的閱讀時間計算器則是另一種面向的時間小工具。下一步很簡單,打開官網建一顆測試用的倒數,30 秒內你就會知道這個版面順不順你的眼。

Sliven 褚崇名
Sliven 褚崇名

每日分享科技新知、免費資源以及 WordPress、虛擬主機相關主題,任何問題歡迎在科技月球下方留言,或是發送 Email 至 [email protected] 與我聯繫。

文章: 1108

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


Share to...