将缓存清单附加到现有站点

时间:2015-04-25 10:11:27

标签: javascript html cache-manifest

是否可以在加载页面后立即以编程方式添加缓存清单?比如使用JavaScript将属性添加到html标记并重新初始化/重新加载页面?

我想为页面添加缓存清单,但无法编辑其HTML本身。

2 个答案:

答案 0 :(得分:1)

我之前做过的一些测试发现,只有在重定向到正确指定了缓存清单的网站时,它才有效。

应用程序缓存适用于每个域。这给了我们两种不同的情况:1。它是我们域名上的一个网站,或者它是2.'一个外部网站。

  1. 因为您只需要在主站点(或任何其他保证被访问的站点上)指定清单,否则您可能会遇到奇怪的行为)您可以将保镖放在您家门前:制作正确指定了缓存清单的虚拟页面(=保镖,显示微调器或进度条)。此虚拟页面还可以检查是否存在更改并交换缓存。加载所有资源后,您只需重定向到" real"您的申请的入口点(保镖授予访问权限)。

  2. 如果是外部网页,则必须选择其他解决方法,例如在服务器端阅读网站内容并在其中进行更正(以便它看起来像是您网站上的网站)。您也可以像任何其他资源一样缓存外部网站,并在iframe中加载外部网站,但只需添加:浏览器中显示的URI必须位于您的域中。如果您考虑一下,它是合理的,否则我可以创建一个永远缓存stackoverflow的站点,并且访问我站点的每个人都将没有更多来自stackoverflow的更新(过度简化,但它应该得到相应的点)。 / p>

答案 1 :(得分:1)

缓存清单描述了运行"应用程序所需的文件。 "离线&#34 ;.加载页面后,您可以设置清单属性。 HTML文件已经发送,浏览器不会对动态添加的清单属性做出反应。

您可以尝试"抓取页面"在服务器端,将内容包装/嵌入带有清单(代理风格)的新HTML页面。