當 Chrome 警報到達服務工作人員時,重新載入會觸發 - 而不是當頁面內的腳本恰好處於喚醒狀態時。
選項卡休眠、丟棄以及因記憶體壓力而被丟棄。彈出視窗關閉。頁面計時器隨文件一起終止。 Auto Refresh Turbo 將時間表保存在擴展服務工作線程中,並在警報觸發時調用 tabs.reload,這就是倒數計時可以比彈出視窗更長久的原因。
時間軸中的演員
- Service Worker - 擁有會話狀態和下一個警報
- chrome.alarms — 在預定的時間點喚醒工作執行緒
- tabs.reload — 對該選項卡 ID 執行正常或硬重新載入
- 彈出視窗/徽章/可選的頁面晶片 - 剩餘時間視圖;不是權威
深層產品路徑:自動選項卡刷新的工作原理。
單一週期
- 您按下「開始」鍵時會出現一個選項卡的間隔(固定或隨機)
- 工作人員儲存會話並準備下一個警報
- 介面顯示剩餘時間
- 警報響起 → Chrome 重新載入標籤
- 如果會話繼續,則準備下一個延遲
- 計畫規則、N 後停止、互動停止或可疑頁面停止可能會暫停或結束循環
當選項卡位於背景時
後台選項卡可以針對頁面 JavaScript 進行限制。這是僅內容腳本計時器是弱核心循環的原因之一。警報 + 工作調度旨在使重新加載嘗試與您的時間間隔保持一致,即使頁面未聚焦 - 受 Chrome 自己的擴展和電源策略的約束。
廢棄且凍結的標籤頁
Chrome 可能會丟棄選項卡以釋放記憶體。如果會話仍然有效,稍後重新載入仍以選項卡 ID 為目標;該文件是最新載入的。如果選項卡完全關閉,則該會話應該結束 - 關閉的選項卡不是沉默的殭屍。
服務工作執行緒重新啟動
工人們可以睡覺了。本機儲存中持久的快照有助於在重新啟動後重建會話。儲存該復原路徑的 URL 和間隔,而不是建立瀏覽歷史記錄產品。請參閱隱私權政策。
關閉彈出視窗不會停止會話:工作人員保持警報,重新開啟彈出視窗應再次顯示剩餘時間。當您想要結束刷新時,請按“停止”。
安排視窗和時鐘
在每日視窗之外,會話將暫停:在視窗開啟之前,警報不應重新載入。那不是停止。闡明計劃暫停與停止和每日計劃中的狀態。
重新載入後,UI 重新安裝
完全重新載入會建立一個新文件。選購的可視計時器重新安裝並與工作人員重新同步。早期注入可保持較短的間隙;工人仍決定下次開火時間。
什麼可以阻止火
- 安排暫停
- 停止/N後停止
- 點擊/鍵入時停止
- 可疑頁面停止
- 缺少權限或無法重新載入的網址方案
演練:故障排除。
多標籤計時
每個選項卡會話都有自己的警報和選項。五個選項卡意味著五個獨立的生命週期 - 對牆很有用,如果您不小心,很容易使單一來源超載(速率限制)。
試試看
安裝 Auto Refresh Turbo,啟動 30 秒的會話,關閉彈出窗口,並確認標籤頁仍按計劃重新加載。