我的主屏幕上添加了漸進式網絡應用程序。我選擇了獨立運行類型,我在其中運行了一個service-worker
。如果我更新我的網站(與其相關的service-worker
,我可以看到更新,如果我直接加載到瀏覽器,但如果我通過家裏啓動它添加的鏈接,我總是看到舊網站。以獨立方式啓動的漸進式網絡應用程序無法檢測網站更新
有一個在獨立模式啓動我的網站時,請求更新的方式?
我的主屏幕上添加了漸進式網絡應用程序。我選擇了獨立運行類型,我在其中運行了一個service-worker
。如果我更新我的網站(與其相關的service-worker
,我可以看到更新,如果我直接加載到瀏覽器,但如果我通過家裏啓動它添加的鏈接,我總是看到舊網站。以獨立方式啓動的漸進式網絡應用程序無法檢測網站更新
有一個在獨立模式啓動我的網站時,請求更新的方式?
挖掘後我發現了簡單的解決方案,我向其他人報告。
iOS不支持service-workers
,所以這不是問題。 的iOS保持在高速緩存中的資源,所以解決方案是將參數添加到各種進口,像這樣:
,以確保更新的最佳解決方案是增加進口作爲參數的哈希值。
或者我們可以使用時間戳來確保資源總是更新。
附上這個參數,我們可以導入這些資源的使用JavaScript注入他們,像這樣
/**
* inietta uno script nella pagina
*/
function appendScript(url) {
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = url;
script.async = false; // async false to wait for previous file loading
head.appendChild(script);
}
// create parameter with date
var currVersion = '?v=' + new Date().getTime();
// get head html element
var head = document.getElementsByTagName("head")[0];
// append script
appendScript('app.js' + currVersion);
// append css
head.insertAdjacentHTML('beforeend', '<link rel="stylesheet" type="text/css" href="style.css' + currVersion + '">');
我想你問:「有沒有辦法來動態更新我的預緩存資產沒有更新我的服務人員?」 是的! 我一直在努力升級到JSON緩存策略 - >https://serviceworke.rs/json-cache.html我們將很快發佈!
它聽起來很有趣...我會嘗試,我會建議你,在此先感謝 – firegloves
chris yout json緩存策略由ios safari支持? – firegloves
是的。我一直在做這個機制大約6 - 7年。有了服務人員,我一直在升級它並從localStorage遷移到indexeddb。 這是幾年前我給出的關於整體概念的Velocity的演示文稿 - > https://youtu.be/GKxkzu0pHUc?list=PLqf5nhDkyqZHR6fQxCYoqPIJwiRdoMXMf 這是一篇關於使用localStorage進行緩存的文章,我很久以前寫過 - > https://love2dev.com/blog/use-local-storage-to-make-your-single-page-web-application-rock/ 我希望爲服務工作者提供新代碼,使用舊版瀏覽器完成本週(iOS)後備。 –
有什麼'start_url'你使用你的Web應用程序清單是什麼?如果您在設備上的Chrome中導航到相同的'start_url',那麼您是否看到與您在添加到主屏幕的鏈接中看到的內容不同的內容? –