前端发版后,可能会因为:
1、缓存原因
2、用户在发版前打开了页面然后一直停留到发版后仍未关闭
导致发版之后用户仍然访问的是旧版的页面
带来的问题:
1、无法使用新功能,需要主动清除浏览器缓存
2、在打开的页面跳转之前未打开过的页面(之前打开过的资源会缓存,如果是spa则js等已在内存中)会因为服务器资源不存在而报错。(vue项目的直观表现就是会触发router.onerror)
解决方法:
1、服务器将强缓存改为协商缓存或者不缓存(解决第一类问题)
2、加入版本校验功能(解决第二类问题),具体操作可以前后端统一维护一个版本号,每次发版都新增,接口通过判断版本号是否一致来返回相应信息,前端获取到不一致标识之后主动刷新页面
3、router.onerror时主动刷新前端页面