JS 缓存的问题一直都是我们又爱又恨的东西。也是我们比较头痛的问题, 一方面为了提高网站响应速度,减少服务器的负担,和节省带宽,将需要将静态资源缓存在客户端, 但是另一方面,当js 文件有改动的时候,如何快速的将客户端缓存的js文件都失效,这是非常头痛的问题。 以至于每次客户反馈问题的时候,我们第一个解决办法都是清理浏览器缓存。

一、使用参数

第一、脚本并不存在,而是服务端动态生成的,因此带了个版本号,以示区别。 即上面代码对于文件来说 等价于 但浏览器会认为他是 该文件的某个版本!

第二、客户端会缓存这些css或js文件,因此每次升级了js或css文件后,改变版本号,客户端浏览器就会重新下载新的js或css文件 ,刷新缓存的作用。

第二种情况最多,也可能两种同时存在。

版本号,可以是一个随机数,也可以是一个递增的值,大版本小版本的方式,或者根据脚本的生成时间书写,比如就是精确到了生成脚本的秒,而 2.3.3 就是大版本小版本的方式。

二、清除浏览器缓存的几种方法

1. meta方法

//不缓存

2. 清理form表单的临时缓存

其实form表单的缓存对于我们书写还是有帮助的,一般情况不建议清理,但是有时候为了安全问题等,需要清理一下!

3. jquery ajax清除浏览器缓存

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

$.ajax({

url:'www.haorooms.com',

dataType:'json',

data:{},

beforeSend :function(xmlHttp){

xmlHttp.setRequestHeader("If-Modified-Since","0");

xmlHttp.setRequestHeader("Cache-Control","no-cache");

},

success:function(response){

//操作

}

async:false

});

方法二,直接用cache:false,

$.ajax({

url:'www.haorooms.com',

dataType:'json',

data:{},

cache:false,

ifModified :true ,

success:function(response){

//操作

}

async:false

});

方法三:用随机数,随机数也是避免缓存的一种很不错的方法!

URL 参数后加上 “?ran=” + Math.random(); //当然这里参数 ran可以任意取了

方法四:用随机时间,和随机数一样。

在 URL 参数后加上 “?timestamp=” + new Date().getTime();

4. 用php后端清理

在服务端加 header(“Cache-Control: no-cache, must-revalidate”);等等(如php中)

html js清除缓存,js清除浏览器缓存的几种方法相关推荐

  1. 如何不让浏览器读取html缓存,不让浏览器缓存index.html

    参考文档:https://www.2cto.com/ask/question/4598 location = /index.html { add_header Cache-Control " ...

  2. 【缓存】客户端(浏览器)缓存学习

    转自:https://www.cnblogs.com/tinywan/p/6067126.html    感恩 目录 客户端(浏览器)缓存的优点 客户端缓存的缺点 浏览器缓存策略 Expires Ca ...

  3. JavaScript基础之缓存机制:浏览器缓存机制

    缓存可以说是网站性能优化非常有用的一种方式.一个优秀的缓存策略可以缩短网页请求资源的距离,减少延迟,并且由于缓存文件可以重复利用,还可以减少带宽,降低网络负荷. 对于一个数据请求来说,可以分为发起网络 ...

  4. JS中常遇到的浏览器兼容问题和解决方法

    JS中常遇到的浏览器兼容问题和解决方法 参考文章: (1)JS中常遇到的浏览器兼容问题和解决方法 (2)https://www.cnblogs.com/wws-bk/p/9770834.html 备忘 ...

  5. java 情况浏览器缓存_JavaWeb禁止浏览器缓存当前Web页面的方法

    所谓浏览器缓存,是指当第一次访问网页时,浏览器会将这些网页缓存到本地,当下一次再访问这些被缓存的网页时,浏览器就会直接从本地读取这些网页的内容,而无需再从网络上获取. 虽然浏览器提供的缓存功能可以有效 ...

  6. js 把字符串转成json对象的三种方法

    js 把字符串转成json对象的三种方法 不管字符串是否含有转义字符,都能转换成 Json 对象 1, js自带的eval函数,其中需要添加小括号eval('('+str+')'); function ...

  7. js中截取字符串前几位的两种方法slice()substring()

    在Javascript使用字符串中,我们不一定需要全部的字符串,这时就需要截取字符串.本文主要介绍js中截取字符串前几位的两种方法:1.使用slice() 方法:2.使用substring() 方法. ...

  8. 实现IE6、IE7、IE8多版本浏览器共存的五种方法

    转自:http://developer.51cto.com/art/201008/220737.htm 你对实现IE6.IE7.IE8多版本浏览器共存的五种方法是否了解,这里和大家分享一下,相信本文介 ...

  9. 实现和IE浏览器交互的几种方法

    实现和IE浏览器交互的几种方法       浙江大学计算机系   (310027)       胡朝晖   陈奇   俞瑞钊          如何实现对IE浏览器中对象的操作是一个很有实际意义的问题 ...

  10. 微信公众号开发,清除微信内置浏览器缓存

    在做微信开发的时候(主要是微信内网页或者比较大型的手机网站)的时候,更改了页面代码,但是微信内置浏览器有缓存,还是之前的效果,影响调试,而且还死活清除不掉!!!!!怎么办? 我的第一想法是关闭手机的微 ...

最新文章

  1. 计算机专业推荐表自我介绍,就业推荐表-自我介绍
  2. Java最佳实践– Vector vs ArrayList vs HashSet
  3. spring boot 如何动态替换bean?
  4. Redis 备份,容灾及高可用实战
  5. python画图遇到复数值数据时应该用numpy.abs()函数还是numpy.real()函数
  6. 使用Eclipse调试Android Native Application---cocos2d-x + Eclipse + Android + ndk
  7. 常用类中的方法 —— java.util.Map
  8. MySQL 5.5 到MySQL 5.6半同步复制(SSL)
  9. win11中gpedit.msc找不到文件怎么办 windows11gepdit.msc找不到文件的解决方法
  10. RK3399封装(CPU+GPU)Mali-T860 Codec架构(十六)
  11. python实例编写(7)---测试报告与测试套件(多个py文件,1个py文件内多个用例)
  12. bios刷写工具_蓝天P750/P751编程器刷BIOS
  13. ansys中ex是什么意思_ansys命令流mp,ex
  14. mac电脑无法识别移动硬盘怎么解决?看过来!
  15. [转载]用树莓派3配置成无线路由器
  16. 使用再生龙制作linux系统镜像及还原,再生龙软件备份和还原linux系统
  17. shell 知:ola
  18. 【参考】bike+需求影响
  19. GitChat · 人工智能 | 如何零基础用 Keras 快速搭建实用深度学习模型
  20. 《奔跑吧 Linux内核》之处理器体系结构

热门文章

  1. 家用光纤猫设备、光纤收发器和光电交换机介绍
  2. 【渝粤教育】 国家开放大学2020年春季 1069中央银行理论与实务 参考试题
  3. [渝粤教育] 西南科技大学 财务管理与分析 在线考试复习资料
  4. 【渝粤教育】广东开放大学 嵌入式数据库 形成性考核 (48)
  5. 【渝粤题库】广东开放大学 C语言程序设计 形成性考核
  6. 【渝粤题库】国家开放大学2021春2038财务管理题目
  7. bloomfilter的java实现,BloomFilter(布隆过滤器)原理及实战详解
  8. python 数据去重_科学网—python学习——根据条件提取数据,并去重 - 李立的博文...
  9. java parallelstream_关于Java8 parallelStream并发安全的深入讲解
  10. VS2010常用快捷键自定义