簡體   English   中英

如何在sw-precache中進行定期匹配

[英]How do I make periodic hits in sw-precache

我一直試圖在沒有用戶交互的情況下獲取和更新Service Worker。 我能夠緩存pagaes,但是只有刷新后,我才能獲取更新版本,這需要用戶交互。 關於如何完成的任何幫助。

框架選擇:Angular2,sw-precache(庫)

這是我頂層的腳本

<script>
  if ('serviceWorker' in navigator) {
    navigator.serviceWorker.register('/service-worker.js').then(function(registration) {
      console.log('Service Worker registered');
    }).catch(function(err) {
      console.log('Service Worker registration failed: ', err);
    });
  }
</script>

每當您在Web服務器上托管的service worker文件中檢測到更改時, sw-precache都會更新緩存。 這個Stack Overflow答案詳細說明了這些檢查新服務人員文件的頻率,但是基本思路是,通常這些檢查發生的時間是在用戶采取措施導航到服務人員范圍內的新URL之后。

盡管存在“定期后台同步”的建議 ,這些建議可以讓您明確要求瀏覽器“在后台”檢查更新,而無需任何使用交互,但尚未在任何地方實現。 有關電池壽命和電池資源使用的問題首先需要解決。

可以使用推式通知在沒有用戶交互的情況下“喚醒”服務工作者,並且當服務工作者通過push事件開始運行時,它還將檢查更新。 您應該在響應push事件時顯示一個可見的通知,因此盡管您可以在沒有用戶交互的情況下觸發一個通知,但最終仍然需要通過通知告知用戶已發出刷新請求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM