我用一些新内容更新了我的网站。 我和一些人谈过要在他们的电脑上查看内容, 但似乎除非他们删除浏览器缓存,否则他们无法看到内容。有没有办法在我这边处理这个问题,所以所有新东西都会自动显示在每个浏览器上?
答案 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)
为了将来参考,有两种类型的缓存:基于过期的缓存和ETag缓存。
如果您在HTTP响应上设置了明确的截止日期,则客户端将不会再检查该截止日期。这可以大大减少网络流量,可能会有过时的内容。明智地选择您的到期日期以获得最佳权衡。
替代方案是ETags,在这种情况下服务器发送ETag令牌,客户端将查询“向我发送新内容,除非此令牌仍然有效”。这只会稍微减少网络流量,但您可以保证始终拥有最新的内容。
您需要在实践中平衡缓存策略。首先确定您是否需要缓存,然后决定您需要多少以及您愿意做出哪些权衡。对于高流量站点,即使是几分钟的缓存也是值得的,而在这种情况下,过时内容的问题将是微不足道的。