Polymer 聚合服务工作进程未缓存
我有一个自定义元素,它获取带有url的facebook个人资料图片(非常小)。我正在使用服务人员拦截呼叫并缓存它。然而,它似乎并不有效。每次页面刷新时,呼叫都会通过网络发出。此外,本地存储下的开发工具中没有任何内容。我还尝试了Polymer 聚合服务工作进程未缓存,polymer,polymer-1.0,service-worker,Polymer,Polymer 1.0,Service Worker,我有一个自定义元素,它获取带有url的facebook个人资料图片(非常小)。我正在使用服务人员拦截呼叫并缓存它。然而,它似乎并不有效。每次页面刷新时,呼叫都会通过网络发出。此外,本地存储下的开发工具中没有任何内容。我还尝试了cacheOnly,但它仍然向网络发出url请求,因此我知道服务人员platinum sw fetch无效 <platinum-sw-register auto-register clients-claim
cacheOnly
,但它仍然向网络发出url请求,因此我知道服务人员platinum sw fetch
无效
<platinum-sw-register auto-register
clients-claim
skip-waiting
base-uri="../bower_components/platinum-sw/bootstrap">
<platinum-sw-fetch
origin="https://z-1-scontent.xx.fbcdn.net"
path="/hprofile(.*)"
handler="cacheFirst">
</platinum-sw-fetch>
</platinum-sw-register>
对我做错了什么有什么建议吗?如果它真的起作用了,我不应该在本地存储中看到一些用于开发工具的东西吗?不过,我确实在开发工具中看到了服务工作者本身
<platinum-sw-register auto-register
clients-claim
skip-waiting
base-uri="../bower_components/platinum-sw/bootstrap">
<platinum-sw-fetch
origin="https://z-1-scontent.xx.fbcdn.net"
path="/hprofile(.*)"
handler="cacheFirst">
</platinum-sw-fetch>
</platinum-sw-register>
<platinum-sw-register auto-register
clients-claim
skip-waiting
base-uri="../bower_components/platinum-sw/bootstrap">
<platinum-sw-fetch
origin="https://z-1-scontent.xx.fbcdn.net"
path="/hprofile(.*)"
handler="cacheFirst">
</platinum-sw-fetch>
</platinum-sw-register>
这不是聚合物(或铂金sw
)问题,而是由于服务人员的工作方式
<platinum-sw-register auto-register
clients-claim
skip-waiting
base-uri="../bower_components/platinum-sw/bootstrap">
<platinum-sw-fetch
origin="https://z-1-scontent.xx.fbcdn.net"
path="/hprofile(.*)"
handler="cacheFirst">
</platinum-sw-fetch>
</platinum-sw-register>
服务工作者仅为其自己的作用域提供获取请求:具体地说,在与服务工作者文件相同的域上,在该目录或更低的目录中。因此,如果您在以下位置使用软件文件进行注册:
<platinum-sw-register auto-register
clients-claim
skip-waiting
base-uri="../bower_components/platinum-sw/bootstrap">
<platinum-sw-fetch
origin="https://z-1-scontent.xx.fbcdn.net"
path="/hprofile(.*)"
handler="cacheFirst">
</platinum-sw-fetch>
</platinum-sw-register>
<platinum-sw-register auto-register
clients-claim
skip-waiting
base-uri="../bower_components/platinum-sw/bootstrap">
<platinum-sw-fetch
origin="https://z-1-scontent.xx.fbcdn.net"
path="/hprofile(.*)"
handler="cacheFirst">
</platinum-sw-fetch>
</platinum-sw-register>
它将只截获以开头的获取请求
<platinum-sw-register auto-register
clients-claim
skip-waiting
base-uri="../bower_components/platinum-sw/bootstrap">
<platinum-sw-fetch
origin="https://z-1-scontent.xx.fbcdn.net"
path="/hprofile(.*)"
handler="cacheFirst">
</platinum-sw-fetch>
</platinum-sw-register>
<platinum-sw-register auto-register
clients-claim
skip-waiting
base-uri="../bower_components/platinum-sw/bootstrap">
<platinum-sw-fetch
origin="https://z-1-scontent.xx.fbcdn.net"
path="/hprofile(.*)"
handler="cacheFirst">
</platinum-sw-fetch>
</platinum-sw-register>
(请参阅“如何注册和安装服务人员”一节。)
<platinum-sw-register auto-register
clients-claim
skip-waiting
base-uri="../bower_components/platinum-sw/bootstrap">
<platinum-sw-fetch
origin="https://z-1-scontent.xx.fbcdn.net"
path="/hprofile(.*)"
handler="cacheFirst">
</platinum-sw-fetch>
</platinum-sw-register>
如果要执行类似操作,需要通过自己的服务器代理请求。我认为这不正确
platinum sw
具有“`”的origin
属性。如果要为特定跨源域上的请求定义自定义处理程序,则必须将origin参数与path结合使用,以匹配要处理的域。“`对不起,我没有理解。试图改变投票结果。关于独立域的origin
属性呢?是的,我想你是对的,我在这里跳了枪。您应该能够获取一些跨域资源。我不确定这里出了什么问题。你能告诉我软件是否正在启动吗?根据regexp仔细检查实际获取的路径?在控制台中看到任何错误吗?唯一的错误是ERR\u FILE\u EXISTS
,它与。。。。。只不过是我的声音。是的,软件正在启动。。。。我在dev工具中看到了worker。只是确认一下,platinum sw
元素确实会缓存图像,对吗?我想你说的是组件。不,当你想缓存所有内容而不是单个url时,该元素会出现。这是一个方便取的包装。
<platinum-sw-register auto-register
clients-claim
skip-waiting
base-uri="../bower_components/platinum-sw/bootstrap">
<platinum-sw-fetch
origin="https://z-1-scontent.xx.fbcdn.net"
path="/hprofile(.*)"
handler="cacheFirst">
</platinum-sw-fetch>
</platinum-sw-register>