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


Posted in Javascript onJuly 26, 2013

js中自动清除ie缓存方法 — 常用

对于动态文件,比如 index.asp?id=... 或者 index.aspx?id=... 相信有经验的程序员都知道怎样禁止浏览器缓存数据了.
但是对于静态文件(css,jpg,gif等等), 在什么场合下面我们需要禁止浏览器缓存他们,怎么做?

方法一:Dojo中我们可以用简单的方法完成:在dojo.xhrGet(包括post)等方法中都包含preventCache属性,此属性的含义: “默认为启用浏览器缓存,否则将通过自动增加不同的参数来确保浏览器缓存失效” 我们只要把此属性赋值为:“true”即可。

方法二:document.write("
其中 ver=113 的 113就是版本号,一般都是采用 CVS 或其他工具生成的开发版本号。
这样真正做到了应该缓存的时候缓存静态文件,当版本有更新的时候从获取最新的版本,并更新缓存。
对于图像 来有效利用和更新缓存.

js清除浏览器缓存 二

为了减小浏览器与服务器之间网络传输压力,往往对静态文件,如js,css,修饰的图片做cache,也就是给这些文件的HTTP响应头加入 Expires和Cache-Control参数,并指定缓存时间,这样一定时间内浏览器就不会给服务器发出任何的HTTP请求(除了强制刷新),即使在 这段时间内服务器的js或css或图片文件已经更新多次,但浏览器的数据依然是原来最能初cache的旧数据,有没有办法让浏览器拿到已经修改后的最新数 据呢?

有,方法是用ajax请求服务器最新文件,并加上请求头If-Modified-Since和Cache-Control,如下:

$.ajax({ 
type: "GET", 
url: "static/cache.js", 
dataType: "text", 
beforeSend :function(xmlHttp){ 
xmlHttp.setRequestHeader("If-Modified-Since","0"); 
xmlHttp.setRequestHeader("Cache-Control","no-cache"); } 
});

这里用了jquery.

这样浏览器就会把最新的文件替换掉本地旧文件。

当然,这里还一个问题就是js必须知道服务器更新了那个js、css、图片,利用cookie和时间版本应该可以解决.

jquery自从1.2开始就有ifModified和cache参数了,不用自己加header

ifModified Boolean Default: false
Allow the request to be successful only if the response has changed since the last request. This is done by checking the Last-Modified header. Default value is false, ignoring the header.
cache Boolean Default: true
Added in jQuery 1.2, if set to false it will force the pages that you request to not be cached by the browser.

$.ajax({ 
type: "GET", 
url: "static/cache.js", 
dataType: "text", 
cache:false, 
ifModified :true 
});
Javascript 相关文章推荐
关于Blog顶部的滚动导航条代码
Sep 25 Javascript
javascript instanceof 与typeof使用说明
Jan 11 Javascript
location.href 在IE6中不跳转的解决方法与推荐使用代码
Jul 08 Javascript
js实现卡片式项目管理界面UI设计效果
Dec 08 Javascript
Bootstrap每天必学之导航组件
Apr 25 Javascript
JavaScript事件学习小结(一)事件流
Jun 09 Javascript
vue.js实现备忘录功能的方法
Jul 10 Javascript
Vue.js 单页面多路由区域操作的实例详解
Jul 17 Javascript
JS简单实现滑动加载数据的方法示例
Oct 18 Javascript
vue-cli 打包使用history模式的后端配置实例
Sep 20 Javascript
vue在响应头response中获取自定义headers操作
Jul 24 Javascript
vue实现把接口单独存放在一个文件方式
Aug 13 Javascript
jquery简单的拖动效果实现原理及示例
Jul 26 #Javascript
js监听键盘事件示例代码
Jul 26 #Javascript
jQuery的控件及事件(输入控件及回车事件)使用示例
Jul 25 #Javascript
固定表格行列(expression)在IE下适用
Jul 25 #Javascript
JavaScript字符串插入、删除、替换函数使用示例
Jul 25 #Javascript
不使用浏览器运行javascript代码的方法
Jul 24 #Javascript
js展开闭合效果演示代码
Jul 24 #Javascript
You might like
PHP解码unicode编码的中文字符代码分享
2014/08/13 PHP
php基于CodeIgniter实现图片上传、剪切功能
2016/05/14 PHP
Yii2框架中日志的使用方法分析
2017/05/22 PHP
JavaScript监测ActiveX控件是否已经安装过的代码
2008/09/02 Javascript
js 替换功能函数,用正则表达式解决,js的全部替换
2010/12/08 Javascript
JQuery扩展插件Validate—4设置错误提示的样式
2011/09/05 Javascript
jQuery EasyUI API 中文文档 - Menu菜单
2011/10/03 Javascript
JavaScript中读取和保存文件实例
2014/05/08 Javascript
indexOf 和 lastIndexOf 使用示例介绍
2014/09/02 Javascript
jQuery选择器之基本选择器与层次选择器
2015/03/03 Javascript
jquery ajax局部加载方法详解(实现代码)
2016/05/12 Javascript
深入理解JS继承和原型链的问题
2016/12/17 Javascript
javascript 中模板方法单例的实现方法
2017/10/17 Javascript
分析JS中this引发的bug
2017/12/12 Javascript
基于datepicker定义自己的angular时间组件的示例
2018/03/14 Javascript
vue.extend与vue.component的区别和联系
2018/09/19 Javascript
JS前端广告拦截实现原理解析
2020/02/17 Javascript
vue 导航菜单刷新状态不消失,显示对应的路由界面操作
2020/08/06 Javascript
微信小程序实现点击导航条切换页面
2020/11/19 Javascript
Python中死锁的形成示例及死锁情况的防止
2016/06/14 Python
Python 判断是否为质数或素数的实例
2017/10/30 Python
numpy中以文本的方式存储以及读取数据方法
2018/06/04 Python
python如何生成网页验证码
2018/07/28 Python
python生成九宫格图片
2018/11/19 Python
Python元组 tuple的概念与基本操作详解【定义、创建、访问、计数、推导式等】
2019/10/30 Python
python实现学生通讯录管理系统
2021/02/25 Python
CSS3中新增的对文本和字体的设置
2020/02/03 HTML / CSS
纬创Java面试题笔试题
2014/10/02 面试题
本科毕业生求职自荐信
2014/02/03 职场文书
搞笑婚礼主持词
2014/03/13 职场文书
小学二年级评语
2014/04/21 职场文书
授权委托书
2014/09/17 职场文书
2014幼儿教师个人工作总结
2014/12/03 职场文书
经验交流材料格式
2014/12/30 职场文书
2015年店长个人工作总结
2015/10/23 职场文书
vue3如何优雅的实现移动端登录注册模块
2021/03/29 Vue.js