我的网络应用程序中存在以下非常具体的错误,这是由历史API与Chrome缓存页面的方式之间的奇怪互动引起的。
/home
之类的网页。此页面是SPA类型页面,当您在页面中导航时,使用History API维护历史记录堆栈。因此,当您执行操作时,网址可能会更改为/home/with/new/state
此页面上还会显示" Hello,User 1" 等消息。/home
,/home/with/new/state
。同样,这不是真正的导航,只是通过历史API修改网址。/home/with/new/state
,,但是仍然显示" Hello,用户1" 的缓存版本。 自然,这对用户来说真的很混乱。
我可以通过设置更积极的缓存控制策略来解决此问题,强制重新加载/home
页面,但这会增加网站的带宽。绝大多数时候,现有的缓存都很好,因为用户没有变化,所以我并不是真的想为所有用户做这个服务器端。它也只是Chrome中的一个问题;不知何故,其他浏览器正确处理此问题。只有当我遇到用户更改的情况时,我才更喜欢使用机制来破解缓存。
我怎么能做到这一点?