ajax.js或filename.js末尾的ver=3.1.2是什么意思?

What does ver=3.1.2 at the end of ajax.js or filename.js?ver=3.1.2 mean?

本文关键字:js 意思 是什么 ver filename ajax      更新时间:2023-09-26

我在一个网站上有一些冲突的jquery问题,当我试图找出它时,我注意到我的头文件中有以下后缀:

ajax.js?ver=3.1.2'></script> 
jquery.prettyPhoto.js?ver=3.1.2'></script> 
jquery.cycle.all.2.72.js?ver=3.1.2'></script> 
jcarousellite_1.0.1.min.js?ver=3.1.2'></script> 
jquery.kwicks-1.5.1.pack.js?ver=3.1.2'></script> 
ddsmoothmenu.js?ver=3.1.2'></script> 
js.js?ver=3.1.2'></script> 

显然3.1.2可能是某种类型的"最新更新"之类的。它是如何工作的?你如何同步主题或平衡它们?

其他文件会因为混合版本而失败吗?这里是它的其余部分:

.css?ver=20110325' type='text/css' media='all' /> 
.css?ver=3.1.2' type='text/css' media='all' /> 
l10n.js?ver=20101110'></script> 
jquery.js?ver=1.4.2'></script> 
all.js?ver=3.1.2#xfbml=1'></script> 
comment-reply.js?ver=20090102'></script> 

不确定这是不是我应该在Stackoverflow上发布的方式,所以请随意编辑。

这个想法是js文件给出了远未来过期头,所以浏览器被指示不要再次下载该文件。

为了允许文件被更改,同时仍然缓存它们,这个缓存破坏查询字符串经常被添加,这样你可以改变ver位,浏览器认为这是一个新文件。

它实际上并没有在服务器端做任何事情,它只是一种简洁的方式。

这实际上是一个非常糟糕的方法,因为一些代理服务器不缓存查询字符串,所以更好的方法是在文件名中嵌入一些东西,而不是查询字符串。

3.1.2看起来像是你正在开发的应用程序的版本,而不是js/css库本身的版本。这样做的一个原因是,当您更新代码时,您不必担心浏览器使用较旧的缓存版本。