0

我正在使用sw-precache和sw-toolbox來管理我的服務人員。比方說,我有我想要緩存不支持服務人員的緩存破壞

staticFileGlobs: ['public/asset/build/css/m_index.min.css'] 

一個CSS文件時,它得到的加入到服務人員上運行一飲而盡任務,

var precacheConfig = [["public/asset/build/css/m_college.min.css","8d9b0e69820ba2fab83c45e2884bd61f"] 

與文件的哈希幫助我在緩存無效時服務工人被註冊。一切正常。

現在考慮某個PC或用戶或瀏覽器無法註冊服務工作者並且每次都通過網絡向他提供文件的情況。在這種情況下,該文件將存儲在瀏覽器內存中,因爲默認情況下沒有緩存破壞。即使在開發人員更新文件後,它也可能會將舊文件提供給該用戶一段時間。

處理這種情況的方法是什麼?

+0

你是否有一些非常明確的理由不使用不同版本的文件名(例如m_index.ajflhyow3uhkahfa.min.css)?這將爲所有訪問者解決問題。 – pate

回答

0

對於任何尋找答案的人來說,都有一個簡單的解決方案 - COOKIES。

嘗試註冊cookie時,如果某件事失敗,請設置cookie。此cookie比發送文件之前可在後端讀取 如果未設置cookie,則在沒有緩存清除的情況下加載文件,否則會在末尾附加緩存攔截器,以防止服務工作人員未運行的瀏覽器緩存。

因爲cookie是前端和後端直接訪問的唯一東西。