在React或Vue中使用前端路由的history模式时,由于服务端会配合使用URL Rewrite技术,产生的效果就是,SPA页面多个path的请求实际返回的是同一个入口文件。

GET https://idealecho.cn/spa/apath
GET https://idealecho.cn/spa/bpath

Response https://idealecho.cn/spa/index.html

在页面采用强缓存策略的情况下,当服务端文件更新后,用户需要手动刷新页面强行使用协商缓存机制获取最新版本,并更新本地缓存副本。而浏览器对页面进行缓存,使用的key是请求中的path值,这就导致本地会产生多份入口文件的缓存副本,并且版本可能并不一致。

在上例中,浏览器为/spa/apath/spa/bpath两个path分别缓存index.html文件副本,last-modifiedetag可能不同。

除非用户对多个path分别手动刷新,否则很容易造成通过链接在多个path间跳转时,页面在新旧版本间变换。

尤其当开发者对某个path做了自动重定向redirect,让用户很难对原始path手动刷新,也就没法更新对应的缓存。这样即便对其他所有path都进行了刷新,但只要通过前述path进入页面,都会得到页面的旧版本。

解决办法:

第一种,对入口文件index.html设置Cache-Control: no-cache以禁用本地缓存;

第二种,服务端保存一个前端最新产出的版本号,页面定时拉取这个版本号与自身版本号对比,发现过期即刷新页面。

标签: none

已有 14 条评论

  1. 独家攻略:传奇私服技能点加速大揭秘,快速升级必备!:https://501h.com/danzhiye/2024-08-20/29220.html

  2. 《享受美吧(原声版)》大陆综艺高清在线免费观看:https://www.jgz518.com/xingkong/148969.html

  3. 《生死爆破》动作片高清在线免费观看:https://www.jgz518.com/xingkong/95883.html

  4. 你的文章让我感受到了无尽的欢乐,谢谢分享。 http://www.55baobei.com/7t0Gc3ILTE.html

  5. 你的文章让我心情愉悦,每天都要来看一看。 http://www.55baobei.com/CaeduXanZn.html

  6. 真棒!

  7. 你的文章让我感受到了无尽的欢乐,谢谢分享。 http://www.55baobei.com/7t0Gc3ILTE.html

  8. 你的文章总是能给我带来欢乐,谢谢你! https://www.4006400989.com/qyvideo/78278.html

  9. 你的文章让我感受到了生活的美好,谢谢! http://www.55baobei.com/Yg5vvZq0cn.html

  10. 你的文章让我心情愉悦,每天都要来看一看。 https://www.4006400989.com/qyvideo/10622.html

  11. 真棒!

  12. 《甜言蜜语2008国语》香港剧高清在线免费观看:https://www.jgz518.com/xingkong/99172.html

  13. 你的文章让我心情愉悦,真是太棒了! https://www.yonboz.com/video/98629.html

  14. 《最后的吸血鬼2023》科幻片高清在线免费观看:https://www.jgz518.com/xingkong/46870.html

添加新评论