如何配置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