网络组件 - 内部浏览器缓存

12

观察Chrome DevTools在http://www.polymer-project.org/docs/polymer/polymer.html的情况,我注意到一些有趣、好奇和未解释的事情:

  1. 浏览器缓存了实际的Polymer组件,因此对于组件的后续<link rel="import"调用不需要服务器回传。

  2. 浏览器将这些组件缓存为数据URL

enter image description here

enter image description here

显然,这样做使加载缓存的组件非常快(0毫秒延迟)

enter image description here

我的问题

  1. 如何控制组件的缓存,以便在需要时可以使缓存无效?(查看规范http://www.w3.org/TR/2014/WD-html-imports-20140311/,我没有发现任何有关缓存的提及)

  2. 将整个站点结构分解为Web组件(也称为“小部件”),是否值得这样做,以便站点的各个部分可以像这样快速加载?例如,我只需使用<my-nav>组件部署相同的布局和相同的导航,其中导航数据(如果有意义的话)都包含在组件本身中,因此一旦缓存就不需要与服务器交互。

1个回答

1

在服务器上控制缓存最为简单。你需要提供eTags,改变组件文件的日期并使用Last-Modified头信息,或者每次更改文件时更改文件名。

另一种处理方法是创建一个Service Worker并让它管理文件的缓存。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接