定期向指定網站發送背景心跳請求以維持登入狀態的瀏覽器擴充功能。有效解決因網頁閒置過久而被強制登出的痛點,保護未儲存的草稿並保障工作流不被打斷。
功能亮點
許多學習平台(如 Moodle)與企業內部系統出於安全性考量,設有閒置自動登出機制。當使用者花費較長時間撰寫報告、閱讀教材或查閱資料,再次操作時常因 Session 過期而被強制登出,導致未儲存的工作內容遺失並中斷心流。開發此工具是為了在背景默默維持連線,消除閒置登出的焦慮。
使用體驗
- 背景心跳請求:自動在背景發送輕量級請求以維持 Session 活躍,使用者完全不需要手動操作,即可長時間保持登入。
- 自訂多網域管理:不侷限於單一系統,使用者可自由新增、編輯多組需要維持登入狀態的網域名稱,靈活套用於各種工作或學習網頁。
- 執行紀錄透明化:Popup 面板內建執行日誌(Logs),實時顯示每一次背景請求的發送狀態與伺服器回應,消除使用者對背景程式暗中執行的疑慮。
- 輕量彈出介面:將網域清單管理、開關切換與日誌檢視整合於瀏覽器工具列的 Popup 面板中,不干擾主畫面瀏覽。

工程設計
本專案基於最新瀏覽器擴充功能規範(Manifest V3)開發,採用 Service Worker 背景監聽與非同步排程架構。
我們將持久化配置儲存、定時任務排程與請求發送模組進行職責分離。定時排程模組利用瀏覽器底層的計時 API 實現低能耗的背景喚醒;而請求模組則配合非同步事件處理,動態抓取儲存的網域清單,在背景執行排程請求,確保即便在瀏覽器低資源消耗狀態下,連線維持任務依然能精準且穩定地執行。
開發技術
- 核心技術:JavaScript (ES6), HTML5, CSS3
- 瀏覽器 API:Chrome Extension API (Manifest V3 - Service Workers, Alarms API, Storage API)
專案收穫
- 規範升級實踐:完整實踐了最新 Manifest V3 規範的擴充功能架構,深入掌握了 Service Worker 生命週期與無狀態(Stateless)背景背景服務的設計挑戰。
- 產品迭代思維:產品從最初專門服務 Moodle 平台,演進為支援自訂多網域的通用型工具,體會到「從特定痛點出發,逐步抽象化成通用產品」的迭代開發歷程。
