Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在客户端浏览器中更新javascript文件?_Javascript_Browser Cache - Fatal编程技术网

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

如何在客户端浏览器中更新javascript文件?,javascript,browser-cache,Javascript,Browser Cache,当javascript文件中出现错误时,我会修复并部署它。 但要在浏览器中更新文件,我应该按Ctrl+F5 这对我来说不是一个问题,但很难说用户要更新文件 如何让用户浏览器在无需特殊操作的情况下从服务器更新javascript文件? 其中一种方法是将路径添加到js文件的文件版本中——每次文件路径都会不同。但这并不方便。许多网站所做的是在指向javascript文件的URL上添加一个URL参数,并在每次文件更改时对其进行更改 大概是这样的: <script langauge="javascr

当javascript文件中出现错误时,我会修复并部署它。 但要在浏览器中更新文件,我应该按Ctrl+F5

这对我来说不是一个问题,但很难说用户要更新文件

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


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

许多网站所做的是在指向javascript文件的URL上添加一个URL参数,并在每次文件更改时对其进行更改

大概是这样的:

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

改变之后:

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


这可能不方便,但却是最常见的解决方案。一些web框架自动执行此过程,因此开发人员不必手动增加版本号。

最好的方法是使用javascript更改文件名。为此,我添加了版本号:例如,我将scripts1.2.js更改为scripts1.3.js

在末尾添加一个随机查询字符串,就像这样;)


只需将任何参数添加到url即可

mysite/javascript/myscript.js?ver=1

并用新版本更改此参数。

例如
/path/to/javascript.js?123456789
谢谢。只有一个缺点是更新部署上的所有JS文件包含。@ SergDeV——如果您使用所有文件的相同版本号,可以使用搜索替换……考虑这个用例:如果用户打开了一个网页,空闲10分钟,那么,更新一个JS文件。你将如何在不采取任何行动的情况下将新的JS文件推送到客户端?@Viral-我不会,不是这样。如果这是一个真正的需求,那么可以通过长时间轮询服务器来检查和替换文件(通过适当的检查,确保在发生这种转换时客户端不会中断)。
mysite/javascript/myscript.js?ver=1