原问题是:
一般浏览器对静态资源的缓存导致的更新不及时问题,我们是怎么处理的?有哪几种方式?
为什么会产生这些方式?(其实就是各种方式的优劣)
之前大家可能都知道 一般的公司对于静态资源以及缓存的处理方式无非就这么几种。
1 在静态资源后面加一个版本号 v=1.111
类似于上面这种方式。
2 为了准确的确定文件是否修改,将后面的版本号修改为文件摘要(主要根据文件内容生成的一个值)。
类似于上面这种,后面的红框表示的部分就是根据文件的摘要生成的key.
3 直接将资源文件名使用文件摘要或者说某个固定的字符串加上一个文件摘要拼接成一个文件名。
类似上面这种方式,最后面红圈内表示的代码是根据文件摘要来生成的,这里需要区别和第二种方式,第二种方式是拿来放在url后面作为一个参数,但文件名没有改变。而这里直接选择修改了文件名。
(彩蛋:有意思的,找了几个TX的网站,发现其实并不是所有的网站都采用了最后一种方式。我想应该技术都是用来追求完美的,但实现还是人实现的,毕竟人的天性是喜欢偷懒的。)
那么问题来了? 以上三种方式的区别是什么?为什么最后会最终演变