从HTML5离线appcache中省略当前页面,但使用缓存资源



出于性能目的,我想让我的一些网页使用已经缓存用于离线使用的资源(图像,CSS等),但不缓存页面本身,因为内容将动态生成。

要做到这一点的一种方法是重构我的页面,以便它们通过AJAX加载动态内容或通过在LocalStorage中查找内容。细节可能会有所不同,但总的来说,差不多是这样的。

如果可能的话,我宁愿找到一种方法,简单地指示浏览器使用缓存资源(再次,图像,CSS等)的页面,但实际上不缓存(动态生成的)HTML内容本身。

是否有办法做到这一点与HTML5离线appcache?我的印象是答案是否定的,因为:

  • 任何包含清单的页面都会被缓存,所以我不能在页面本身指定缓存的资源。
  • 没有办法告诉前一个页面"使用离线资产的另一个页面,但实际上不缓存该页面上的HTML"。必须指定页面本身,这意味着HTML将被缓存。

我错了吗?似乎有一些棘手的(或不那么棘手的)方法可以解决这个问题。现在我已经把它打出来了,我想知道在appcache清单的NETWORK部分显式地包含该页面是否会成功。

我的回答是"是"。

我在一个web应用程序上工作,我列出了清单中所有必要的资源,并将NETWORK部分设置为*

清单只包含在主登陆页上。所以所有的资源都会在你第一次访问这个网站的时候被缓存,这真是太棒了。

简言之,

  • 您的一个页面必须包含清单,因此将被缓存。

    也许你可以在iframe中加载manifest,而不是缓存整个页面,只是一个想法。

  • 列出CACHE部分中缓存的所有资源

  • 设置NETWORK区段为*

我很确定这个问题的答案是否定的。如果你在Chrome中使用网络部分,那么它会显示哪些资源是从缓存加载的,哪些是从服务器加载的。我已经尝试如上所述设置apache,资源总是从服务器加载。如果当前页面不在appcache中,那么它不会费心在appcache中检查任何资源,我是否正确?

我发现正在工作的是列出那些你不想在manifest的NETWORK:部分中缓存在appcache中的文件。对我来说,这意味着在网络部分添加*.asp*。现在,没有任何经典的asp文件或aspx文件被缓存。

相关内容

  • 没有找到相关文章

最新更新