2015-05-07 47 views
0

我已经用一些新内容更新了我的网站。 我曾经和一些人讨论过在他们的电脑上查看内容, ,但似乎他们不能看到内容,除非他们删除了他们的浏览器缓存。有没有办法在我身边处理这个问题,所有的新东西都会在每个浏览器上自动显示出来?新内容不可见,因为浏览器缓存

+2

使用此元标记http://stackoverflow.com/questions/1341089/using-meta-tags-to-turn-off-caching-in-all-browsers – MrPk

+0

可能重复:https://开头计算器。 COM /问题/ 2576721 /如何到清晰的浏览器缓存,从服务器端 – Ankit

回答

0

如果不清除缓存,就没有办法做到这一点。

虽然,您可以通过按CTRL+SHIFT+R(atleast on firefox)轻松删除缓存。

0

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

展望未来,最好的,你可以做的是告诉浏览器在未来not to cache at all,或to cache for a specified time(小于下一个预期更新)

Cache-Control : no-cache 

Cache-Control : max-age=315600 

ETag听起来像它可能达到目的(虽然我从来没有用过的)。

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

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

    如果您在HTTP响应中设置了明确的截止日期,那么在该截止日期过去之前,客户端根本不会检查回来。这可以大大减少网络流量,并且可能会有过时的内容。为了达到最佳平衡,明智地选择您的到期日期。

    另一种方法是ETags,在这种情况下,服务器发送一个ETag令牌,客户端将询问“发送给我新的内容,除非此令牌仍然有效”。这只会在一定程度上减少网络流量,但您可以保证始终拥有最新的内容。

    您需要在实践中平衡缓存策略。首先决定是否需要缓存,然后决定你需要多少,以及你愿意做什么折衷。对于高流量的网站,即使是几分钟的缓存也是值得的,而在这种情况下过时内容的问题将会很小。