解决 Web 缓存的 Python 脚本

momo707577045

解决 Web 缓存的 Python 脚本

web cache killer

源码地址

作用

  • 通过脚本,为文件中的 URL 添加版本号,解决移动端使用缓存,不显示最新效果的问题。
  • 添加后缀为「js」「html」「css」「png」「jpg」「jpeg」链接的版本号。

定位

  • vue 脚手架本身就自带这个功能,gulp 也有类似的功能。为什么要重复造轮子?
  • 因为 vue,gulp 等,需要 npm 下载各种依赖包。对于只有几个页面的微小型项目。为此添加脚手架性价比不高。
  • 本脚本不需要添加任何依赖。在 linux 和 mac 等自带 python 环境的系统中,可直接运行。简单便捷。
  • 本脚本可以放在 linux 中,结合 jenkins 发布系统等,进行自动化发布。

原理

  • 通过在 URL 链接中添加版本号,让浏览器当做全新的资源。绕过浏览器缓存,从服务器重新获取文件。以解决缓存问题。
  • 版本号添加的是,文件对应的 hash 值。故文件内容未发生变化时。URL 将不会发生变化。会复用浏览器中缓存的文件。合理利用缓存。
  • 工具只会添加目标文件夹中存在的文件,的链接。因为通常访问的外部链接,是第三方资源,不会轻易改变,故不存在缓存问题。

使用方法

注意,工具会在源文件中进行替换,注意备份源文件。否则会被污染。

python changeVersion.py '目前文件夹绝对路径'

代码解析

  • 递归遍历目标文件夹中的所有文件。
  • 用字典(或者叫对象)保存每个文件的「文件名」及「文件内容hash」。
  • 再次递归遍历目标文件夹中的所有文件。
  • 遍历文件内容,通过正则匹配里面所有的 URL,通过「文件名」查询前面保存的字典,是否有对应的 hash 值。
  • 如果有 hash 值,则证明该文件是内部文件,可能被改动,往 URL 中添加版本号,version=${hash}。以解决文件缓存问题。
  • 由于版本号是通过文件内容的hash,故文件内容未发生变化时。URL 将不会发生变化。会复用浏览器中缓存的文件。

关于缓存的友情链接

阅读 3.3k

原创小文章
专注中小团队开发。 前端技术,效率工具分享与探讨。

[链接]

2.1k 声望
0 粉丝
0 条评论
推荐阅读
基于 xlsx-style 的前端合并单元格复杂表头导出
项目功能任意层级合并单元格复杂表头导出表头与数据项直接映射,无需维护 Excel 索引项匹配关系自动计算、生成表头合并单元格配置信息在线示例步骤零:如需快速测试,可点击顶部的示例按钮,可快速填充各层级合并...

momo707577045阅读 649评论 1

封面图
如何使用 React 和 Monaco Editor 实现 Web 版 VSCode?
本项目是 React 基于 Monaco Editor 实现的 Web VSCode Demo,它的主要功能是允许在浏览器中编写 TypeScript/JavaScript 并直接运行,除此之外,它还包含如下功能:

破晓L4阅读 639

嘿,vue中keep-alive有个「大坑」你可能还不知道
背景是这样的,我们使用vue2开发一个在线客服使用的IM应用,基本布局是左边是访客列表,右边是访客对话,为了让对话加载更友好,我们将对话的路由使用<keep-alive>缓存起来。但是如果将所有对话都缓存,未...

wuwhs3阅读 418

封面图
基于一段神奇的CSS渐变制作噪点效果
提及噪点效果,首先想到的就是以前的旧电视机信号不稳定时或者画面不稳定时的效果。如果你没有看过那种旧电视,可以看下面的gif动图,真实的情况噪点的变化速度会快很多,这里为了gif的大小,截取的时间较短供参考。

南城FE1阅读 320

封面图
低代码引擎半岁啦,来跟大家唠唠嗑...
之前低代码引擎一直是在阿里集团内部进行孵化的,对外开源算是一次新生。从2022年3月23日开源至今,我们的低代码引擎已经半岁了,希望借这个机会来跟大家唠唠嗑。

阿里巴巴终端技术6阅读 1.1k评论 5

封面图
浅谈业务中台前端设计
做前端中台业务一年多的时间,有一些心得体会,和大家分享分享。中台是什么中台业务的价值是什么做了哪些前端中台业务如何设计前端中台业务未来展望中台是什么百度百科的解释比较言简意赅:“中台,互联网术语,一...

趁你还年轻2阅读 317

浏览器渲染原理(一文搞懂)
浏览器渲染原理前言浏览器的主要功能总结起来就是一句话:将用户输入的 URL 转变成可视化的图像。从 URL 到 DOM 树;从 DOM 树到可视化图像;这两个过程之间的关系并没有那么明确,我们可以统称这两个过程为页面...

风不识途1阅读 786

[链接]

2.1k 声望
435 粉丝
宣传栏