【问题标题】:How to force the browser to cache a page .html?如何强制浏览器缓存页面.html?
【发布时间】:2025-08-10 23:20:01
【问题描述】:

有人知道如何在浏览器中强制页面缓存吗?我需要多次重新加载页面,但浏览器没有缓存页面!

【问题讨论】:

  • 你怎么知道它没有缓存页面?
  • 你在哪里看过,你尝试过什么?
  • 我认为取决于您的浏览器(因为这是一个特定于浏览器的问题)。你用的是什么浏览器?
  • 如果需要重新加载,为什么要缓存它?重新加载是为了获取新数据,而缓存是为了当你不希望它更新页面时......
  • 感谢大家!很抱歉让他们久等了!...我正在为 SmartTV 开发,并且该应用程序在 EngineApp 3.0 浏览器中运行...我不知道这个浏览器是什么,但使用 webkit 运行...我会进一步研究它!...

标签: javascript html file caching


【解决方案1】:

如果浏览器没有缓存页面,那么您只能使用其中之一:

<meta http-equiv="Cache-control" content="public">

<meta http-equiv="Cache-control" content="private">

不能以编程方式覆盖浏览器设置。这将是一个安全问题!

【讨论】:

  • 谢谢!我试过这样做,但对于安全问题,这确实是不可能的......再次感谢!
【解决方案2】:

即使您有&lt;meta http-equiv="Cache-control" content="public"&gt;,也需要考虑其他因素。

请注意,某些浏览器对缓存有文件大小限制...如果可以,请将 html 保持在 25Kb 以下,并将 css、js 等外部资源...保持在 1Mb 以下,但有关浏览器的详细信息,请参阅:here 和 @987654322 @

您可以在某些浏览器上查看browser.cache.disk.max_entry_size,如果无法预先计算文件大小,您可以使用document.getElementsByTagName('html')[0].outerHTML.length 估算长度。

您的服务器需要适当设置“Last-Modified”和“Expires”

如果启用,这只会增加缓存的可能性,而不是强制它。如果启用了本地存储但未启用缓存,您可能会考虑使用本地存储(有些人会完全禁用缓存以应对 1 个特定站点)

【讨论】:

    【解决方案3】:

    你必须添加这个元标记:

    <meta http-equiv="Cache-control" content="public">
    

    【讨论】: