出于性能目的,我想让我的一些网页使用已缓存供离线使用的资源(图像、CSS 等),但不缓存页面本身,因为内容将动态生成。
实现此目的的一种方法是重构我的页面,以便它们通过 AJAX 或通过在 LocalStorage 中查找内容来加载动态内容。细节可能有所不同,但从广义上讲,大致如此。
如果可能的话,我更愿意找到一种方法来简单地指示浏览器为页面使用缓存资源(同样是图像、CSS 等),而不是实际缓存(动态生成的)HTML 内容本身.
有没有办法用 HTML5 离线应用程序缓存做到这一点?我的印象是答案是否定的,因为:
- 任何包含 list 的页面都将被缓存,因此我无法在页面本身中指定缓存的资源。
- 没有办法告诉前一个页面“为另一个页面使用离线资源,但实际上并不缓存该页面上的 HTML”。您必须指定页面本身,这意味着将缓存 HTML。
我错了吗?似乎有一些棘手的(或不那么棘手的)方法可以解决这个问题。既然我已经输入了它,我想知道在应用缓存 list 的 NETWORK
部分中显式包含该页面是否可以解决问题。
最佳答案
我的回答是"is"。
我开发了一个网络应用程序,我在 list 中列出了所有必要的资源,并将 NETWORK
部分设置为 *
。
list 随后仅包含在主着陆页上。因此,在您第一次访问该站点时,所有资源都会被缓存起来,而且效果很好。
简而言之,
您的一个页面必须包含 list ,因此将被缓存。
也许您可以将 list 加载到 iframe 中而不缓存整个页面,这只是一个想法。
在
CACHE
部分列出要缓存的所有资源- 将
NETWORK
部分设置为*
关于html - 从 HTML5 离线应用程序缓存中省略当前页面,但使用缓存资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8320121/