为了账号安全,请及时绑定邮箱和手机立即绑定

如何让Javascript文件更新时让用户获取最新的文件?

如何让Javascript文件更新时让用户获取最新的文件?

慕森卡 2019-04-09 20:25:32
一种处理方式是在页面上使用类似..../index.js?v=20140409这样的方式,这样处理会有一个问题,就是每次需要修改页面上的引用js的代码。有没有什么方法,可以不修改引用js代码达到js文件更新时自动获取最新js的效果?
查看完整描述

2 回答

?
RISEBY

TA贡献1856条经验 获得超5个赞

坏消息是:需要及时获取最新的js文件,必须修改url
好消息是:我们可以用服务器端脚本来让这项工作轻松一些,比如常见的php
//逻辑
define('RELEASE_TIMESTAMP',20140409);
//页面
xxx.js?v=
这样就把所有的JS引用的URL集中在一个地方了,工作稍微轻松一些。接下来我们可以更进一步
define('RELEASE_TIMESTAMP',filemtime('./timestamp'));
这样只要发布的时候touchtimestamp一下就行了,可以不用改代码提交代码了
当然还可以继续牛逼哄哄地搞下去,比如有个下发机制,一个配置中心控制多台线上机器之类的,随意发挥
                            
查看完整回答
反对 回复 2019-04-09
?
喵喵时光机

TA贡献1846条经验 获得超7个赞

一般有这些方案,覆盖面逐级递增:
Expires
Cache-control
Last-Modified&etag
修改Querystring
修改文件名/路径名以修改URL
不修改URL,避开4、5的话,可以结合1和3来更新,Expires设置缓存(及失效时间),Last-modified通知更新。
但如果PV达到一定量级,很难保证所有用户都拿到最新的静态(甚至4都不太靠谱,运营商有劫持静态的可能),选择5改URL是必然的事情。
读读这一篇吧,缓存-更新机制,讲得很详细:余果,全栈工程师相关专栏《计算机科学里最难的事情》。
                            
查看完整回答
反对 回复 2019-04-09
  • 2 回答
  • 0 关注
  • 493 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信