在Web开发过程中,缓存管理是一个不可忽视的问题。Web应用依赖于JavaScript和CSS,并且遵循快速迭代的发布周期。每次发布都会增加许多新功能和修改,因此对旧的JavaScript和CSS文件进行大量更改。经过严格的测试后,产品上线供最终用户使用。现在,肯定会有用户反馈当前发布的版本存在bug,页面上的一切都崩溃了。但是,为什么会出现这种情况呢?毕竟在测试期间一切正常。哦,是的,但否通知了最终用户的浏览器,JavaScript和CSS文件已经更改,它需要获取一个新副本以便正常工作。当然,没有这样做,那么应该怎么做呢?告诉最终用户清除缓存(CTRL+F5),以便浏览器获取所有文件的新副本,这不是很麻烦吗?
好吧,可以认为浏览器缓存是罪魁祸首,但消除它会影响页面性能。每次页面请求时,浏览器都会拉取相同的JavaScript和CSS文件。或者,可以考虑在将来的某个特定日期过期文件。可以在页面级别或服务器级别实现这一点。
在“功能视图”中,双击“HTTP响应头”。在“HTTP响应头”页面上,在“操作”窗格中,单击“设置常见标题”。在“设置常见HTTP响应头”对话框中,选择“过期Web内容”复选框,并选择以下选项之一:
这个解决方案将非常有效。但是,如果混合使用这两种解决方案呢?让用户在他们准备好时获取新文件,同时利用缓存选项。可以通过两种方式实现这一点:
<link type="text/css" rel="stylesheet" href="css/base.css?v=000">
这里的技巧是,每次更新CSS文件时都更改数字,以确保浏览器始终下载新代码。当浏览器检查是否有任何缓存时,它会比较文件名。现在,由于浏览器将“base.css?v=000”和“base.css?v=001”视为不同,因此它将下载新的CSS文件。
<link type="text/css" rel="stylesheet" href="css/base_000.css">