我正在处理一个项目,该项目无法在我的js文件上实现版本控制以进行缓存。
因此,如果可能,我需要一种从服务器端更新用户缓存的方法。
我的想法是我可以暂时更改js的名称,然后让浏览器缓存新实例。然后我将文件名还原为它。
此时这是否意味着浏览器仍然会有旧文件名的缓存,因此加载旧的js?
e.g。
example.js>更改为> example-new.js>浏览器缓存这个新的js>将文件名还原为example.js> ......会发生什么?
答案 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>
这将强制客户端浏览器获取新文件,而不是使用缓存文件。