今天实现网站注销功能时,需要清除cookie缓存,开始在网上搜索的是“js清除缓存”,发现很多都是预先防患缓存存储的内容,千篇一律,不过也学习到了;后来换成"js清除cookie"才找到自己想要的结果。

先学习一下预先防治缓存存储的方式吧

在http中,控制缓存开关的字段有两个:Pragma 和 Cache-Control,后者拥有最高优先级,只要与其他设置相抵触,一律覆盖之。

Pragma有两个字段Pragma和Expires。Pragma是http1.0字段,值为no-cache时,表示禁用缓存,当一个no-cache请求发送给一个不遵循HTTP/1.1的服务器时,客户端应该包含pragma指令; Expires的值是一个GMT时间,表示该缓存的有效时间,优先级低于Cache-Control:max-age,两者同时出现,expires被覆盖;如果都没有出现。也没有其他缓存,则浏览器默认采用启发式算法,取Date_value-Last-Modified_value(请求资源最后一次修改时间)值的10%作为缓存时间

Pragma是旧产物,已经逐步抛弃,有些网站为了向下兼容还保留了这两个字段。如果一个报文中同时出现Pragma和Cache-Control时,以Pragma为准。同时出现Cache-Control和Expires时,以Cache-Control为准。即优先级从高到低是 Pragma -> Cache-Control -> Expires

以两个常用值举例 no-cache: 不管本地副本是否过期,浏览器、缓存服务器在使用资源副本前都要到源服务器进行副本有效性校验。

must-revalidate:本地副本过期前,浏览器、缓存服务器可以使用本地副本;本地副本一旦过期,必须去源服务器进行有效性校验。

头部设置

<!--在头部加上此三句即可禁用缓存-->

<meta http-equiv="pragma" content="no-cache" />

<meta http-equiv="content-type" content="no-cache, must-revalidate" />

<meta http-equiv="expires" content="Wed, 26 Feb 1997 08:21:57 GMT"/>

reset清除表单的临时缓存

<body onLoad="javascript:document.表单名.reset()">

ajax获取情书数据加上请求头

$.ajax({

  ......

  beforeSend :function(xmlHttp){

  //缓存校验字段,值为资源最后一次的修改时间,即上次收到的Last-Modified值

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

  //相当于max-age:0,must-revalidate即资源被缓存,但是缓存立刻过期,同时下次访问时强制验证资源有效性

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

  success:function(response){

    //操作

  }

   async:false

});

ajax请求数据直接不缓存

$.ajax({

  ......

  cache:false, //不进行缓存

   success:function(response){

     //操作

  }

  async:false

});

利用随机数与时间戳让每次请求不相同,不仅是页面,js、css等资源也可以使用这样的方式

URL 参数后加上 "?ran=" + Math.random(); 或 "?ran=" + new Date().getTime(); //当然这里参数 ran可以任意取了

用当前页面覆盖原页面防止回退

window.location.replace("你要覆盖的页面");

然后是js对cookie的操作

设置cookie

document.cookie="key="+value;//cookie一般以键值对的方式存在,也可以自定义储存方式

获取cookie

cookieArray=document.cookie.split(';');

for(var i=0;i<cookieArray.length;i++){

  //操作;key:cookieArray[i].split('=')[0];value:cookieArray[i].split('=')[1] 

}

删除cookie只需要设置时间过期即可

document.cookie=key+"="+你想操作的cookie+":expire="+new Date(0).toGMTString();

最新文章

  1. virtualbox 下windows与虚拟机实现文件共享---挂载
  2. Glyphicons字体图标
  3. (转)对.net系统架构改造的一点经验和教训
  4. 【推荐】iOS带有加载网络图片进度的UIImageView
  5. sql server 2005 32位+64位、企业版+标准版、CD+DVD 下载地址大全 .
  6. mysql外键设置(待测试)
  7. LINUX输入输出与文件&mdash;&mdash;续
  8. 源码级分析Android系统启动流程
  9. 【转】纯 CSS 实现高度与宽度成比例的效果
  10. HDU 5274(树链剖分)
  11. C语言根据函数名调用对应的函数
  12. nyoj737 石子合并(一) 区间DP
  13. centos7搭建Cisco上网方式
  14. redis 的简单命令
  15. codeforces707C
  16. VBV Rate Control
  17. HTML(5)基础
  18. POJ 2932 Coneology计算最外层圆个数
  19. SysTick Software Timer
  20. android Socket 编程

热门文章

  1. MySQL数据库(七)--索引
  2. 利用mycat读写分离搭建wordpress博客网站
  3. UNITY Serializer 序列化 横向对比
  4. linux终端下常用快捷键
  5. 数据结构篇——字典树(trie树)
  6. webuploader大文件分片,多线程总结
  7. seq2seq模型详解及对比(CNN,RNN,Transformer)
  8. STM32F10x之NVIC
  9. Set学习笔记
  10. const 变量在多个文件共享,如何验证两种不同的方式下,编译器是否会在多个文件下建立多个副本