javascript - 为什么/includes/js/third-party.js?ver=3.5.1后面要加上ver=3.5.1
PHP中文网
PHP中文网 2017-04-10 15:45:03
[JavaScript讨论组]

我在看别人的代码的时候,看到这样引包的方法 "/includes/js/third-party.js?ver=3.5.1" 为什么引用第三方js的时候后面要加上版本号,这样引包跟直接引包有什么区别?

PHP中文网
PHP中文网

认证0级讲师

全部回复(4)
巴扎黑

用来防止浏览器使用根据url缓存的js版本,强迫浏览器重新获取最新的版本。

未来防止浏览器缓存不生效,而加的参数

怪我咯

和缓存更新有关。

这是为了确保对页面和脚本的代码进行了更新之后,浏览器缓存的脚本能得到正确的刷新,从而不影响页面效果。

用query是比较简单的方法。在有CDN之类的情况下也存在一定的问题。建议阅读前端工程精粹(一):静态资源版本更新与缓存,讲解的非常透彻。

巴扎黑

应该没有什么区别吧,我能想到的好处就是,把版本号放最后面,方便写 js 生成 url,其实这不算什么好处。

对于后台来说,这样写相当于把版本好作为 GET 的参数,这样就可以在调用接口不变的情况下,改变不同版本js库的组织结构。

好吧,如果你问的是为什么要加版本号: 就是 你写的代码可能不支持太低版本或是太高版本,或是有些人想用测试版的最新功能,有些人想用稳定版。

巴扎黑

给@zodiacg提到CDN的点个赞。

补充一下:
正常而言http协议中是有etag和last modify处理静态文件的更新问题,但是有时候服务器配置仅判断url。
这也是各种权衡的结果,为了适应服务器设置只有通过修改url来穿透各层缓存。

如果要深入研究建议楼主也可以去看看apache、nginx、squid、vanish的相关设置。

p.s.正常的第三方库的版本号肯定是在文件名里面的。例如

<script src="https://fb.me/react-0.13.3.js"></script>
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号