发布紧急版本客户端更新缓存

111 阅读1分钟
  • 设置响应头:在服务器端设置Cache - ControlHTTP 头部来控制浏览器的缓存策略。例如设置为Cache - Control: no - cache, no - store, must - revalidate,告知浏览器不要使用缓存的版本,而是每次都请求新的资源。也可以设置Expires字段为一个过去的时间,让浏览器认为缓存已过期,从而重新请求资源。
  • 修改资源 URL:通过在资源文件的 URL 后添加查询字符串,如时间戳或随机数,使浏览器将该请求视为新文件,进而下载最新资源。例如<script src="xxx.js?timestamp=1698367627"></script>,其中timestamp为当前时间戳。
  • 使用 Service Worker:Service Worker 可以拦截网络请求并提供缓存控制。开发者可通过编写相关代码,使其在检测到新版本时,强制从网络获取最新资源,而不是使用缓存。例如,监听fetch事件,在事件处理函数中优先从网络获取资源,若获取失败再尝试从缓存中获取。
  • 利用前端存储:借助localStoragesessionStorage存储版本号等相关信息。在页面加载时,将服务器返回的版本号与本地存储的版本号进行对比,若不一致,则说明有新版本,可采取刷新页面等操作来更新缓存。
  • 提示用户手动清除:可以在客户端界面显示提示信息,告知用户有新版本发布,引导用户手动清除浏览器缓存。不同浏览器清除缓存的方式略有不同,以 Chrome 为例,用户可打开开发者工具(F12),在 “应用程序” 选项卡中找到 “缓存”,选择 “清除缓存”。