前端资源文件缓存和增量更新策略

单个文件级别

大概思路:
假设客户端可缓存无限容量的资源文件(html,css,js),缓存时间可自定义。
用户每次访问项目,都发送一个资源文件是否最新的请求。
如果有更新,拉取更新的文件,刷新本地缓存。
如果没有更新,读取本地缓存资源文件。

稍微具体流程:

  1. 服务器上所有资源文件的发布,都会产生对应的唯一编码(发布时间戳或者资源内容的MD5编码),从而生成一个映射表文件。
  2. 客户端请求时,发送客户端的映射表文件版本,是否跟服务器端的映射表文件版本一致。
  3. 不一致时,获取最新的映射表文件,然后客户端进行文件对比,然后拉取最新的资源文件,刷新本地缓存。
  4. 可以把服务端多个资源文件打包成一个压缩包,客户端自行解压,来减少请求个数。

字符级别

  1. 客户端有合并增量更新代码的能力,类似git merge
  2. 服务端每次 build 的时候,同时生成最新版本与之前 n 天之内所有版本的 diff,类似git diff
  3. 客户端请求时,发送客户端的映射表文件版本,是否跟服务器端的映射表文件版本一致。
  4. 不一致时,获取diff信息,本地进行diff,刷新缓存。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容