缓存JS而不更改文件名或在本地清除缓存

时间:2016-05-05 10:50:15

标签: javascript caching browser-cache

我正在处理一个项目,该项目无法在我的js文件上实现版本控制以进行缓存。

因此,如果可能,我需要一种从服务器端更新用户缓存的方法。

我的想法是我可以暂时更改js的名称,然后让浏览器缓存新实例。然后我将文件名还原为它。

此时这是否意味着浏览器仍然会有旧文件名的缓存,因此加载旧的js?

e.g。

example.js>更改为> example-new.js>浏览器缓存这个新的js>将文件名还原为example.js> ......会发生什么?

1 个答案:

答案 0 :(得分:1)

如果您要更改服务器端的js代码,然后在不需要“清除缓存”的情况下对客户端进行此更改,请执行以下操作。

不是更改文件名,而是使用额外的参数引用它们,假设使用该版本。 因此,假设您在html,jsp .... page。中引用了一个js文件“example.js”。

你的标签应该是:(注意文件网址末尾的?v1.1)

<script type="text/javascript" src="jslib/example.js?v1.1"></script>

现在,下次对此文件进行更改时,请将其引用为:

<script type="text/javascript" src="jslib/example.js?v1.2"></script>

这将强制客户端浏览器获取新文件,而不是使用缓存文件。