簡體   English   中英

Angular Service Worker 導致調用發生兩次

[英]Angular service worker leads to calls happening twice

我剛剛通過以下方式安裝了 Angular cli 的 service worker:

https://medium.com/@amcdnl/service-worker-pwas-with-the-angular-cli-98a8f16d62d6

我在任何地方改變了任何東西,因此我的 conf 應該是標准的。 我可以看到我的服務工作者提供了我的靜態資源。 然而令人震驚的是,有些人做了兩次(例如 inline.bundle.js 是)

來自網絡選項卡的 inline.bundle.js

我對這里的界面有點困惑,請求實際上沒有完成兩次,對嗎?

根據 Service Worker 的配置方式,這似乎很正常。

這里最有可能發生的是:

  • SW緩存一些東西
  • 下次軟件以緩存的資產響應
  • 在對緩存的資產做出響應后,SW 檢查來自服務器的文件以查看它是否已更改
  • 如果服務器上的資產發生了變化,SW 會用新版本替換緩存的版本

這會導致網絡面板顯示對同一文件的“兩個請求”。 如果查看網絡面板,第二個請求左側的小圖標表示“此請求是從 Service Worker 發起的”。 該圖標告訴您,是軟件想要從網絡中獲取某些東西。

不過,這可能不是最佳選擇。 在您的情況下,資產文件名是這個或那個的散列,因此每次您更改代碼並發布網站的新版本時,文件名都會更改。 當文件名改變時,軟件不應有任何理由向網絡查詢更新的文件內容。 如果名稱更改,則為新文件; 如果沒有,則什么都沒有改變。 但這是 SW 框架/庫/任何特定的,我不確定如何在您的情況下配置它。 只是在更大的圖景中需要理解的東西。

暫無
暫無

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

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