问题描述
在整个代码的生命周期中,伴随着业务升级的同时,前端也会随之变更。为了提高用户易操作性和满意度的前提下,一定会修改前端的js、css等。但是如果仅仅修改js等的内容,发布完成后,在用户侧由于已经缓存了js等,导致出现无法使用最新js的情况。
解决方案:
为了解决浏览器缓存的问题。有以下三个方法:
- 禁用浏览器缓存。
此方法不可取
- 修改js或css文件名称。
- 增加js或css的版本号。
第一个方法,是最不可取的方法,因为禁止前端全部静态资源的缓存后,会出现每次访问页面,都会重新加载js或css,这将大大影响访问速度,用户体验极差。
第二个方法,不推荐使用。因为每次修改文件名称,对于文件版本管理不利。
第三个方法,推荐使用。在每次修改完成后,增加版本号。在浏览器端,会进行判断,版本号与缓存不一致时,就会更新js或css。这样既保证了js或css实时更新,又极大的节省了其他未变更的访问速度。
<link rel = "stylesheet" href = "style.css?version=newVersion"/>
项目实际意义:
在项目实际开发过程中,可以采用以下方式解决缓存问题。
- 增加版本号的变量。将上述代码中的newVersion存储在项目中,可以是文件或者数据库内。
- 增加拦截器。每次访问的时候增加对newVersion的读取。
- 前端增加通用的头部。在通用头部内,newVersion作为变量,每次都能获取到最新的数据。这样发布后,就会根据最新的版本进行刷新。
通过上述方法,即可达成修改js或css后,浏览器实现自动刷新。