今天实现网站注销功能时,需要清除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();

前端不缓存,ajax不缓存,js操作cookie的更多相关文章

  1. JS操作cookie以及本地存储(sessionStorage 和 localStorage )

    JS操作cookie cookie的操作用两种方式 1.substring //创建cookie function setCookie(name,value,expires,path,domain,s ...

  2. jquery.cookie.js 操作cookie实现记住密码功能的实现代码

    jquery.cookie.js操作cookie实现记住密码功能,很简单很强大,喜欢的朋友可以参考下.   复制代码代码如下: //初始化页面时验证是否记住了密码 $(document).ready( ...

  3. js操作cookie,实现登录密码保存 [转]

    转自:http://blog.csdn.net/zyujie/article/details/8727828 ( 谢谢博主了) js操作cookie,实现登录密码保存.cookie的存放方式是以键值对 ...

  4. 转: js操作cookie

    cookie的几个概念 http://dearhappyfish.blog.163.com/blog/static/1901094152012422114753777/ js操作cookie 转:ht ...

  5. jquery.cookie 使用文档,$.cookie() 文档教程, js 操作 cookie 教程文档。

    jquery.cookie 使用文档,$.cookie() 文档教程, js 操作 cookie 教程文档. jquery.cookie中的操作: jquery.cookie.js是一个基于jquer ...

  6. js 操作 cookie

    js 操作 cookie 的方法如下: //设置cookie function setCookie(cname, cvalue, exdays) { var d = new Date(); d.set ...

  7. 使用纯生js操作cookie

    前段时间做项目的时候要使用js操作cookie,jquery也有相应的插件,不过还是觉得纯生的js比较好,毕竟不依赖jq. //获得coolie 的值 function cookie(name) { ...

  8. js操作cookie(转载:经测试可用)

    /***js操作cookie,star***/ function addCookie(objName,objValue,objsec){//添加cookie  var str = objName + ...

  9. 分步引导中,Js操作Cookie,实现判断用户是否第一次登陆网站

    上一篇介绍了分布引导插件IntroJs的使用,本篇介绍通过Js操作cookie的方法. 分步引导的功能只适合与第一次登陆网站的新用户,不能每次登陆都提示分布引导,那么如何判断用户是否第一次登录网站呢? ...

  10. node.js操作Cookie

    node.js操作Cookie http://www.tuicool.com/articles/F3UF7n

随机推荐

  1. 国内不fq安装K8S四: 安装过程中遇到的问题和解决方法

    目录 4 安装过程中遇到的问题和解决方法 4.1 常见问题 4.2 常用的操作命令 4.3 比较好的博客 国内不fq安装K8S一: 安装docker 国内不fq安装K8S二: 安装kubernet 国 ...

  2. 盛科(Centec)交换机 SmartConfig 特性

    参考 DHCP manual pages DHCP option-66 & option-150 的区别 一. 原理 目前市场上稍微有些实力的交换机厂商,均支持自动化的批量开局部署,虽然具体实 ...

  3. 【Tomcat】使用Eclipse绑定Tomcat 发布应用&&常见错误

     创建时间:6.14 一.Eclipse绑定Tomcat 步骤1:获得服务器运行环境配置,Window/Preferences/Server/Runtime Environment 步骤2:添加服务器 ...

  4. 字符串比较==和equals的区别

    <Stack Overflow 上 370万浏览量的一个问题:如何比较 Java 的字符串?> 比较详细的比较了==和equals方法的区别. 那借此机会,我就来梳理一下 Stack Ov ...

  5. 简单理解EM算法Expectation Maximization

    1.EM算法概念 EM 算法,全称 Expectation Maximization Algorithm.期望最大算法是一种迭代算法,用于含有隐变量(Hidden Variable)的概率参数模型的最 ...

  6. 201871010105-曹玉中《面向对象程序设计(java)》第四周学习总结

    201871010105-曹玉中<面向对象程序设计(java)>第四周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这 ...

  7. C#中的函数(一) 无参无返回值的函数

    分析下C#中的函数 先写一个小例子,一个静态函数,无返回值,无形参 在第17行与20行分别下断点 F5调试运行,此时中断在第17行MyFunction(), 在第17行右键反汇编,看下反汇编代码 这里 ...

  8. 【笔试题】python文件操作

    请说出下面代码结果及原因,很easy. 说明:test.txt文件不存在 with open('test.txt','w+') as f: f.write('34') f.seek(0) f.writ ...

  9. 1. vue 的安装

    兼容性 Vue 不支持 IE8 及以下版本,因为 Vue 使用了 IE8 无法模拟的 ECMAScript 5 特性.但它支持所有兼容 ECMAScript 5 的浏览器. 安装: 1.直接用 < ...

  10. vmtools的功能

    1.vmtoools是vmware公司的组件 2.vmtools主要安装在Guest OS中 3.在workstation版本中可以是选件安装,但在vsphere中却是必选安装 4.vmtools可以 ...