是否可以在白金服务工作者上组合 dom-repeat?
Is it possible to combine a dom-repeat on a platinum service worker?
我想为用户提供缓存多达 2,600 多个项目的能力,通过分组(书籍类别、单本书,或者如果他们不想要整本书,甚至可能只是某本书的章节) .据我所知,预缓存所有这些项目是不可能的,因为它们有 2,600 多个,并且将来会更多 - service worker 将在不到几百个时超时。并且由于服务工作者在安装时要么全部获取,要么 none(如果我理解正确的话),我是否需要使用多个服务工作者(具有不同的 ID?),还是我想错了?
我的想法是...
<iron ajax></iron-ajax>
<template is="dom-repeat" items="...">
<platinum-sw-register auto-register clients-claim skip-waiting>
<platinum-sw-cache default-cache-strategy="fastest"
cache-config-file="../someGenerator.php"></platinum-sw-cache>
</platinum-sw-register>
换句话说:
- 通过 iron-ajax 获取想要的 URL 列表(基于用户启用的缓存)
- 通过 dom-repeat
作为组迭代 URL
- 为 URL 组
创建一个具有自定义缓存配置的服务工作者
- 重复 2 和 3 直到完成,然后敬酒
someGenerator.php 会 return 为特定的 URL 组设置 JSON 配置。
我的应用程序是一个单页应用程序 - 带有霓虹灯动画页面 - 一页代表类别,一页用于图书列表,一页用于每本书的 table 内容,然后是每一章的一页内容。所有数据都是通过iron-ajax.
获得的
以下是一些演示问题的链接:
A large non-functional cache-config generated
我怀疑,为了避免服务工作者因冗余而出错,或覆盖现有缓存,我需要分配单独的 ID,并将它们包含在生成的缓存配置中。 听起来对吗?
不,我不认为这是正确的方法。 <dom-repeat>
并且创建多个服务工作者不会完成您想要的。
由于获取 JSON 配置和执行所有预缓存的延迟,您在 install
处理程序期间确实遇到了一些服务工作者强加的超时。退后一步,您确定需要预缓存整组 URL 吗?
<platinum-sw>
也会为您提供运行时缓存,这样当浏览器加载给定的 URL 时,如果有可用的网络连接,资源将自动添加到缓存中并可离线使用在随后的 return 次访问中。
还有其他方法可以使用 window.caches
从受控页面中缓存资源,或者使用类似 postMessage()
的方法来传达额外 URL 的列表以进行缓存从您的受控页面到您的服务工作者。这两种方法都涉及超越使用 <platinum-sw>
获得的默认功能并深入挖掘内部结构。
我想为用户提供缓存多达 2,600 多个项目的能力,通过分组(书籍类别、单本书,或者如果他们不想要整本书,甚至可能只是某本书的章节) .据我所知,预缓存所有这些项目是不可能的,因为它们有 2,600 多个,并且将来会更多 - service worker 将在不到几百个时超时。并且由于服务工作者在安装时要么全部获取,要么 none(如果我理解正确的话),我是否需要使用多个服务工作者(具有不同的 ID?),还是我想错了?
我的想法是...
<iron ajax></iron-ajax>
<template is="dom-repeat" items="...">
<platinum-sw-register auto-register clients-claim skip-waiting>
<platinum-sw-cache default-cache-strategy="fastest"
cache-config-file="../someGenerator.php"></platinum-sw-cache>
</platinum-sw-register>
换句话说:
- 通过 iron-ajax 获取想要的 URL 列表(基于用户启用的缓存)
- 通过 dom-repeat 作为组迭代 URL
- 为 URL 组 创建一个具有自定义缓存配置的服务工作者
- 重复 2 和 3 直到完成,然后敬酒
someGenerator.php 会 return 为特定的 URL 组设置 JSON 配置。
我的应用程序是一个单页应用程序 - 带有霓虹灯动画页面 - 一页代表类别,一页用于图书列表,一页用于每本书的 table 内容,然后是每一章的一页内容。所有数据都是通过iron-ajax.
获得的以下是一些演示问题的链接:
A large non-functional cache-config generated
我怀疑,为了避免服务工作者因冗余而出错,或覆盖现有缓存,我需要分配单独的 ID,并将它们包含在生成的缓存配置中。 听起来对吗?
不,我不认为这是正确的方法。 <dom-repeat>
并且创建多个服务工作者不会完成您想要的。
由于获取 JSON 配置和执行所有预缓存的延迟,您在 install
处理程序期间确实遇到了一些服务工作者强加的超时。退后一步,您确定需要预缓存整组 URL 吗?
<platinum-sw>
也会为您提供运行时缓存,这样当浏览器加载给定的 URL 时,如果有可用的网络连接,资源将自动添加到缓存中并可离线使用在随后的 return 次访问中。
还有其他方法可以使用 window.caches
从受控页面中缓存资源,或者使用类似 postMessage()
的方法来传达额外 URL 的列表以进行缓存从您的受控页面到您的服务工作者。这两种方法都涉及超越使用 <platinum-sw>
获得的默认功能并深入挖掘内部结构。