Chrome 扩展程序 — 定时标签刷新

Chrome 選項卡生命週期:重新載入實際觸發時

當 Chrome 警報到達服務工作人員時,重新載入會觸發 - 而不是當頁面內的腳本恰好處於喚醒狀態時。

選項卡休眠、丟棄以及因記憶體壓力而被丟棄。彈出視窗關閉。頁面計時器隨文件一起終止。 Auto Refresh Turbo 將時間表保存在擴展服務工作線程中,並在警報觸發時調用 tabs.reload,這就是倒數計時可以比彈出視窗更長久的原因。

時間軸中的演員

  • Service Worker - 擁有會話狀態和下一個警報
  • chrome.alarms — 在預定的時間點喚醒工作執行緒
  • tabs.reload — 對該選項卡 ID 執行正常或硬重新載入
  • 彈出視窗/徽章/可選的頁面晶片 - 剩餘時間視圖;不是權威

深層產品路徑:自動選項卡刷新的工作原理。

單一週期

  1. 您按下「開始」鍵時會出現一個選項卡的間隔(固定或隨機)
  2. 工作人員儲存會話並準備下一個警報
  3. 介面顯示剩餘時間
  4. 警報響起 → Chrome 重新載入標籤
  5. 如果會話繼續,則準備下一個延遲
  6. 計畫規則、N 後停止、互動停止或可疑頁面停止可能會暫停或結束循環

當選項卡位於背景時

後台選項卡可以針對頁面 JavaScript 進行限制。這是僅內容腳本計時器是弱核心循環的原因之一。警報 + 工作調度旨在使重新加載嘗試與您的時間間隔保持一致,即使頁面未聚焦 - 受 Chrome 自己的擴展和電源策略的約束。

廢棄且凍結的標籤頁

Chrome 可能會丟棄選項卡以釋放記憶體。如果會話仍然有效,稍後重新載入仍以選項卡 ID 為目標;該文件是最新載入的。如果選項卡完全關閉,則該會話應該結束 - 關閉的選項卡不是沉默的殭屍。

服務工作執行緒重新啟動

工人們可以睡覺了。本機儲存中持久的快照有助於在重新啟動後重建會話。儲存該復原路徑的 URL 和間隔,而不是建立瀏覽歷史記錄產品。請參閱隱私權政策。

關閉彈出視窗不會停止會話:工作人員保持警報,重新開啟彈出視窗應再次顯示剩餘時間。當您想要結束刷新時,請按“停止”。

安排視窗和時鐘

在每日視窗之外,會話將暫停:在視窗開啟之前,警報不應重新載入。那不是停止。闡明計劃暫停與停止和每日計劃中的狀態。

重新載入後,UI 重新安裝

完全重新載入會建立一個新文件。選購的可視計時器重新安裝並與工作人員重新同步。早期注入可保持較短的間隙;工人仍決定下次開火時間。

什麼可以阻止火

  • 安排暫停
  • 停止/N後停止
  • 點擊/鍵入時停止
  • 可疑頁面停止
  • 缺少權限或無法重新載入的網址方案

演練:故障排除。

多標籤計時

每個選項卡會話都有自己的警報和選項。五個選項卡意味著五個獨立的生命週期 - 對牆很有用,如果您不小心,很容易使單一來源超載(速率限制)。

試試看

安裝 Auto Refresh Turbo,啟動 30 秒的會話,關閉彈出窗口,並確認標籤頁仍按計劃重新加載。

相關

继续探索

有趣