js文件被浏览器缓存

如果修改了js文件中的js代码,发布代码到线上后。用户的浏览器使用的还是原来js缓存。所以并不会马上生效。

如何才能让浏览器使用最新的js文件呢?

我去看了一下淘宝,发现也是这样一种方式额,不知道对不对?

如下:

15年8月12日补充:

公司有好几千万注册会员,于是第三方应用使用我们网站会员帐号实现在第三方网站登录,需要设计oauth2.0授权的平台,于是需要参考微博的oauth体制。

无意中发现他们的css也是使用年月日来控制

进一步思考:

这种加时间方法是可行。。不是系统生成的时间,不是所有js文件都加。

是不是可以进一步考虑一种办法,用程序来进行开关呢?

自己勾选。如果这个文件修改了。那么就设置为更新。模版中判断,就根据这个开关,把时间戳自动打上去?

不过这样子觉得没必要。因为还没到那么重大。其实初期,完全可以程序手动把日期打上去即可了。

该了什么js文件,就给哪个js文件加,这样已经是折衷了。就跟改代码一样。代码都要修改的,这点改也没多少工作量。

总结思路:

js文件的内容修改了,可以加个t参数表明一下日期,用这个日期来作为版本号,看到日期也能知道是哪天发布的。

没有修改js文件根本就不用修改日期。

实践:

<script type="text/javascript" src="{{passport_host}}js/common.js?t=20150622" ></script>

如果下一次修改了这个js文件,那么发布的时候,就修改日期

<script type="text/javascript" src="{{passport_host}}js/common.js?t=20150628" ></script>

没有修改的js文件,保留原来的值不动即可。

时间: 2024-11-05 14:47:53

js文件被浏览器缓存的相关文章

解决修改css或js文件,浏览器缓存更新问题。

在搜索引擎中搜索关键字.htaccess 缓存,你可以搜索到很多关于设置网站文件缓存的教程,通过设置可以将css.js等不太经常更新的文件缓存在浏览器端,这样访客每次访问你的网站的时候,浏览器就可以从浏览器的缓存中获取css.js等,而不必从你的服务器读取,这样在一定程度上加快了网站的打开速度,又可以节约一下你的服务器流量. 问题 现在问题来了,.htaccess设置的css.js缓存都有一个过期时间,如果在访客的浏览器中已经缓存了css.js,在这些css.js缓存未过期之前,浏览器只会从缓存

JS清除IE浏览器缓存的方法

本文为大家详细介绍下js中自动清除ie缓存的几种方法,大家可以根据自己的需求自由选择适合自己的,希望对大家学习js有所帮助 js中自动清除ie缓存方法 — 常用 对于动态文件,比如 index.asp?id=... 或者 index.aspx?id=... 相信有经验的程序员都知道怎样禁止浏览器缓存数据了. 但是对于静态文件(css,jpg,gif等等), 在什么场合下面我们需要禁止浏览器缓存他们,怎么做? 方法一:Dojo中我们可以用简单的方法完成:在dojo.xhrGet(包括post)等方

JavaScript执行bat文件清理浏览器缓存

function exec() { window.onerror = function (err) { if (err.indexOf('utomation') != -1) { alert('命令已被用禁止!'); return true; } else{ return false; } }; var wsh = new ActiveXObject('WScript.Shell'); if (wsh){ wsh.run("C:/Users/Vision/Desktop/1111.sql&quo

浏览器清除页面JS文件缓存的方法

在调试JavaScript的时候, 有时即使刷新页面, 最新的改动也不会生效, 这是因为浏览器为了方便将JS文件进行了缓存, 因此无论怎样刷新, 使用的仍然是历史版本. 遇到这种情况的时候有两种解决方案 第一种相对比较简单: 首先按 F12 键进入浏览器的开发者模式, 接着点击图片所示的 Network 此时勾选 Disable cache 就完成了. 这个时候只需要刷新页面 F5 即可加载最新版本的JS文件, 即可展示对JS文件做出的改动 第二种方案通过修改浏览器设置, 对于不同的浏览器可能进

服务器与浏览器缓存协商控制机制的总结

http://www.ginano.net/browser-server-cache-control-rule 发表于2013 年 3 月 13 日由ginano 引子:昨天中文站出现了大量的用户投诉,投诉内容是运费发生变化,运费金额不正确.可是我们本地怎么测试都没有问题.但是考虑到问题唯一的可能是昨天的一个关于运费模版优化的项目引发的.因为,我昨天中午发布了一个style应用版本,发布时间是11点20分左右,运费模版优化项目的发布是在晚上9点钟左右.但是由于运费模版优化项目在正式发布阶段发现了

网络加速手段之一,JS文件资源合并下载

有过ftp下载文件经验的人都有体验,单独下载一个100M的文件比分开下载100个1M的文件速度快很多,这是因为下载需要解析域名,建立连接等额外开销的时间,因此下载100个文件就要做100次这种额外的开销.因此如果把这个100个文件整合成一个文件下载速度会快很多. 基于上述的方法,可以对HTML中的JS文件也做类似的处理,无论js文件多少个,通过配置文件,把N个js文件合并到一个文件下载.实现手段通过httpHandler.具体代码如下: web.config文件中: <httpHandlers>

在js或css后加?v= 版本号不让浏览器缓存

在js或css后加?v= 版本号不让浏览器缓存,jscss 客户端会缓存css或js文件,改变版本号,客户端浏览器就会重新下载新的js或css文件,在js或css后加?v= 版本号的用法如下 代码如下: <span style="font-size:14px;">css和js带参数(形如.css?v=与.js?v= 或 .css?version=与.js?version= ) <script type=”text/javascript” src=”jb51.js?ve

apache下用expires_module让浏览器缓存静态文件

apache下用expires_module让浏览器缓存静态文件 apache配置静态缓存的原因: 第一点,       减轻服务器的压力. 第二点,       省去浏览器经常要去服务端下载CSS.JS.图片.静态文件等,减小不必要的网络IO. 配置步骤: 1. 在apache主配置文件中开启apache扩展模块mod_expires.so,命令: Vi /usr/local/apache2/conf/httpd.conf,如下图所示: 2. 配置缓存,在apache的虚拟主机(/usr/lo

分享一个控制JS 浏览器缓存的解决办法。

 JS 缓存的问题一直都是我们又爱又恨的东西.也是我们比较头痛的问题, 一方面为了提高网站响应速度,减少服务器的负担,和节省带宽,将需要将静态资源缓存在客户端, 但是另一方面,当js 文件有改动的时候,如何快速的将客户端缓存的js文件都失效,这是非常头痛的问题. 以至于每次客户反馈问题的时候,我们第一个解决办法都是清理浏览器缓存. 那么如何解决呢. 1. 直接禁止全部的静态文件缓存 在html 头部加上如下代码: <META HTTP-EQUIV="pragma" CONTENT