如何配置Polymer的platinum-sw-cache或platinum-sw-fetch來緩存除/ _api(這是Hoodie的API的URL)以外的所有URL路徑?我已經配置了一個鉑-SW-取元素來處理/ _api路徑,則鉑-SW-cache來處理路徑的其餘部分,如下所示:如何配置Polymer的鉑-sw- *不緩存一個URL路徑?
<platinum-sw-register auto-register
clients-claim
skip-waiting
on-service-worker-installed="displayInstalledToast">
<platinum-sw-import-script href="custom-fetch-handler.js"></platinum-sw-import-script>
<platinum-sw-fetch handler="HoodieAPIFetchHandler"
path="/_api(.*)"></platinum-sw-fetch>
<platinum-sw-cache default-cache-strategy="networkFirst"
precache-file="precache.json"/>
</platinum-sw-cache>
</platinum-sw-register>
定製取入handler.js包含下列。其目的僅僅是如果服務工作人員不處理請求,則以瀏覽器的方式返回請求的結果。
var HoodieAPIFetchHandler = function(request, values, options){
return fetch(request);
}
似乎什麼東西不能被正確的工作是,用戶1已經簽署後,再2個跡象退出,則用戶,然後在Chrome瀏覽器開發工具網絡選項卡,我可以看到帽衫定期繼續向兩個用戶的API端點發出請求,如下所示:
http://localhost:3000/_api/?hoodieId=uw9rl3p
http://localhost:3000/_api/?hoodieId=noaothq
相反,它應該僅向這些API端點中的一個發出請求。在網絡選項卡中,每個URL在一行中出現兩次,在「大小」列中,第一個請求表示「(來自ServiceWorker)」,第二個請求用字節表示響應大小,以防相關。
另一個似乎相關的問題是,當我以用戶2的身份登錄並提交表單時,應用程序將寫入用戶1的服務器端數據庫。這讓我覺得這個問題是由於應用程序無法繞過/ _api路由緩存而導致的。
我是否應該在一個鉑-sw-寄存器元素中使用鉑-sw-高速緩存和鉑-sw-提取,因爲這些文檔聲明它們是彼此的替代品?
剛剛有類似的工作。這有幫助。謝謝。 – jptknta