如何在客户端浏览器中更新JavaScript文件?

5

当我的javascript文件有错误时,我会修复它并进行部署。但为了在浏览器中拥有更新的文件,我需要按Ctrl+F5。

这对我来说不是问题,但很难告诉用户更新文件。

如何使用户的浏览器在没有特殊操作的情况下从服务器更新javascript文件?

其中一种方法是将js文件路径添加到文件的版本中 - 每次文件路径都会不同。但这很不方便。

4个回答

12
许多网站的做法是在指向JavaScript文件的URL上添加参数,每当文件更改时就更改该参数。 类似这样的操作:

类似以下方式:

<script src="example.js?v=1"></script>

<script langauge="javascript" src="myfile.js?ver=1" />

修改后:

<script langauge="javascript" src="myfile.js?ver=2" />

这可能不太方便,但它是最常见的解决方案。一些网络框架可以自动化此过程,使开发人员无需手动增加版本号。


例如 /path/to/javascript.js?123456789 - mnelson
唯一的缺点是在部署时需要更新所有JS文件的包含。谢谢。 - sergtk
@sergdev - 如果您对所有文件使用相同的版本号,那么您可以使用搜索替换... - Oded
@Viral - 我不会这样做。如果这是一个真正的需求,可以通过对服务器进行长轮询来检查和替换文件(并进行适当的检查以确保客户端在更改发生时不会中断)。 - Oded
@Oded 谢谢。这不是真正的需求,但我在面试中被问到了,我给出了与您写的类似的答案。我只是想探索不同的方法,因为面试官问了我。 - Viral
显示剩余2条评论

1
在结尾处添加一个随机查询字符串,就像SO一样 ;)
<script type="text/javascript" src="http://sstatic.net/js/master.min.js?v=d761eb59f537"></script>

0

最好的方法是使用JavaScript更改文件名。我正在添加版本号来实现这一点:例如,我将scripts1.2.js更改为scripts1.3.js


0

只需在URL中添加任何参数即可

mysite/javascript/myscript.js?ver=1

并将此参数更改为新版本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接