如何在客户端以编程方式使Chrome缓存无效?

时间:2018-02-26 16:12:39

标签: browser-cache browser-history html5-history history.js

我的网络应用程序中存在以下非常具体的错误,这是由历史API与Chrome缓存页面的方式之间的奇怪互动引起的。

  • 用户A在网站上登录并使用/home之类的网页。此页面是SPA类型页面,当您在页面中导航时,使用History API维护历史记录堆栈。因此,当您执行操作时,网址可能会更改为/home/with/new/state此页面上还会显示" Hello,User 1" 等消息。
  • 用户A退出应用程序。
  • 在同一台计算机和浏览器上,用户B登录并转到/home/home/with/new/state。同样,这不是真正的导航,只是通过历史API修改网址。
  • 用户2单击某个链接以导航(实际)到网站上的另一个页面。
  • 用户2单击后退按钮
  • 浏览器返回/home/with/new/state,但是仍然显示" Hello,用户1" 的缓存版本。

自然,这对用户来说真的很混乱。

我可以通过设置更积极的缓存控制策略来解决此问题,强制重新加载/home页面,但这会增加网站的带宽。绝大多数时候,现有的缓存都很好,因为用户没有变化,所以我并不是真的想为所有用户做这个服务器端。它也只是Chrome中的一个问题;不知何故,其他浏览器正确处理此问题。只有当我遇到用户更改的情况时,我才更喜欢使用机制来破解缓存。

我怎么能做到这一点?

0 个答案:

没有答案