由于浏览器缓存,新内容不可见

时间:2015-05-07 13:23:20

标签: html

我用一些新内容更新了我的网站。 我和一些人谈过要在他们的电脑上查看内容, 但似乎除非他们删除浏览器缓存,否则他们无法看到内容。有没有办法在我这边处理这个问题,所以所有新东西都会自动显示在每个浏览器上?

3 个答案:

答案 0 :(得分:0)

如果不清除缓存,则无法完成此操作。

虽然,您可以通过按CTRL+SHIFT+R(至少在Firefox上)轻松删除缓存。

答案 1 :(得分:0)

您无法从服务器端/客户端代码中删除删除用户的浏览器缓存。

展望未来,您可以做的最好的事情是将来告诉浏览器not to cache at all,或to cache for a specified time(低于下一次预期的更新)

Cache-Control : no-cache

Cache-Control : max-age=315600

ETag听起来可以达到目的(虽然我从未使用过)。

  

服务器生成并返回通常的任意令牌   散列或文件内容的其他指纹。该   客户端不需要知道指纹是如何生成的   需要在下次请求时将其发送到服务器:如果是指纹   仍然是相同的,然后资源没有改变,我们可以跳过   下载。

答案 2 :(得分:0)

  1. 您无法远程擦除某人的缓存。这次你唯一的选择是等待,或者告诉你的用户清除他们的缓存,或者指示他们大力按刷新几次,这将导致大多数浏览器刷新页面。
  2. 为了将来参考,有两种类型的缓存:基于过期的缓存和ETag缓存。

    如果您在HTTP响应上设置了明确的截止日期,则客户端将不会再检查该截止日期。这可以大大减少网络流量,可能会有过时的内容。明智地选择您的到期日期以获得最佳权衡。

    替代方案是ETags,在这种情况下服务器发送ETag令牌,客户端将查询“向我发送新内容,除非此令牌仍然有效”。这只会稍微减少网络流量,但您可以保证始终拥有最新的内容。

    您需要在实践中平衡缓存策略。首先确定您是否需要缓存,然后决定您需要多少以及您愿意做出哪些权衡。对于高流量站点,即使是几分钟的缓存也是值得的,而在这种情况下,过时内容的问题将是微不足道的。