簡體   English   中英

當通過服務工作者緩存文件時,緩存變得非常臃腫,服務工作者是否在緩存隱藏文件?

[英]When caching files via service worker the cache gets very bloated, is service worker caching hidden files?

我有一個服務人員在這里遵循 Nicolas Bevacqua 概述的這種方法。 經過一些小的調整后,該代碼對我有用。 但是當瀏覽一段時間時,緩存會變得非常臃腫。 我添加了一些排除項,即

if (( event.request.url.indexOf( '/maps/' ) !== -1 ) || 
    ( event.request.url.indexOf( '/mapfiles/' ) !== -1 ) || 
    ( event.request.url.indexOf( '/maps-api-v3/' ) !== -1 ) || 
    ( event.request.url.indexOf( '/images/' ) !== -1 ) || 
    ( event.request.url.indexOf( '.mp4' ) !== -1 ) ) {
    return false;
} 

但奇怪的是緩存總大小並不能反映實際緩存中的內容。 那里似乎有我的兩個緩存中沒有列出的數據。 有沒有辦法阻止這種情況發生? Service Worker 是否在緩存隱藏文件?

  1. 你應該更具體一點——“一些嚴重的臃腫”在這里不太描述=)
  2. 在磁盤上檢查時,總緩存大小不反映實際文件通常意味着您正在緩存不透明的響應 當緩存不透明的響應時,緩存 API 通過說它占用大量空間來隱藏響應的實際大小。 所以例如。 7 Kb 文件在 SW 緩存中可能變為 7 Mb。 在此處閱讀更多信息: https://cloudfour.com/thinks/when-7-kb-equals-7-mb/
  3. 我不確定您所說的“我的兩個緩存中未列出的數據”是什么意思。 您需要提供來自 DevTools 的代碼示例和屏幕截圖,並且更具體 =)
  4. 不,Service Worker 默認不緩存任何東西。 我不確定您所說的“隱藏文件”是什么意思,但仍然沒有,Service Worker 不會緩存您沒有要求它緩存的任何內容。 如果您要求它緩存這些“隱藏文件”,那么它將緩存它們。 但是,在您不知情的情況下,沒有自動機制可以這樣做。

希望這可以幫助! 隨時提出更多問題或更新您的問題!

暫無
暫無

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

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