参考:

http://bbs.csdn.net/topics/330028896  浏览器缓存机制

http://www.docin.com/p-591569918.html  浏览器缓存的一些问题的处理方法

部分浏览器缓存问题的解决方案

1.GET请求缓存处理,不想要缓存GET请求?

浏览器会缓存GET请求,不会缓存POST请求,因此解决为:

方法1:GET请求URL后加随机数,让服务器认为是不同的请求,如:"http://www.example.com/index.jsp?class=articele&page=5&t"+new Date().getTime();

方法2:在ajax发送请求前加上xmlHttpRequest.setRequestHeader("If-modified-since","0");

方法3:在ajax发送请求前加上xmlHttpRequest.setRequestHeader("Cache-Control","no-cache");

方法4:若为jquery ajax, 设置ajax属性cache:false;(注意:cache属性对post没有用,对get才有用)

方法5:在服务器端响应请求时加上response.setHeader("Cache-Control","no-cache,must-revalidate");

方法6:使用POST代替GET,浏览器不会对POST做缓存

注意:为什么cache属性对post没有用,对get才有用?

因为1.浏览器缓存url请求原理就是判断url是否相同,url相同则读取缓存,url不相同则读取服务器

2.使用GET方式提交url类似"http://www.example.com/index.jsp?class=articele&page=5“,而POST方式提交url类似http://www.example.com/index.jsp,参数是在请求  head里的,不在url上,请求参数url始终相同

3.jquery ajax GET方式提交: data: "t=" + new Date().getTime(),  或者 data:{"t": new Date().getTime()}或者cash:false都是在请求后面加上不同的参数,cach:false会启动 生成参数附加在url请求里,因此浏览器认为是不同的请求,就重新请求服务器。

2.防止JSP动态页面内容被缓存?

方法:在JSP页面里 头部

<%
response.setHeader("expires","sat,6 May 1995 12:00:00 GMT");//将expire时间设置为一个过去时间或0,-1等
response.setHeader("cache-control","no-store,no-cache,must-revalidadate");//设置HTTP/1.1 cache-control头
response.addHeader("cache-control", "post-check=0,pre-check=0");//设置IE 扩展HTTP/1.1 no-cache header
response.setHeader("Pragma", "no-cache");//设置标准HTTP/1.0 no-cache header
%>

2.防止html页面被缓存?(jsp也适用)

方法:html页面里

注意:

1.若在jsp页面里"<%response%>"添加页面过期 + "<meta http-equiv>"添加不过期,则页面过期.

2.若在jsp页面里"<%response%>"添加页面不过期 + "<meta http-equiv>"添加过期,则页面不过期.

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">

3.cache-control参数说明:

a.max-age=""指示客户机可以接受生存期小于指定时间的响应,以s为单位,在max-age规定的秒数内,浏览器将不会发送对应的请求到服务器,数据由缓存直接返回,超过这一时间段才进一步由服务器决定是返回新数据还是仍由缓存提供。

b.public 指示响应可被任何缓存区缓存;

c.private 指示对于单个用户的整个或部分响应消息,不能被共享缓存处理,这允许服务器描述当用户的部分响应效益,此响应消息对于其他用户的请求无效;

d.no-cache 指示请求或响应消息不能缓存;

e.no-store用于防止重要的信息被无意发布,在请求消息中发送将使得请求和响应消息都不缓存;

f.min-fresh指示客户机可以接收响应时间小于当前时间加上指定时间的响应;当前时间加上指定时间内,浏览器不会发送消息到服务器

g.max-stale:指示客户机可以接收超出超时期间的响应消息,如果指定max-stale消息的值,那么客户机可以接收超出超时期指定值之内的响应消息。

PS:仅作记录-笔记

js清除缓存以及jsp缓存[部分常用]的更多相关文章

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

    js中自动清除ie缓存方法 — 常用 对于动态文件,比如 index.asp?id=... 或者 index.aspx?id=... 相信有经验的程序员都知道怎样禁止浏览器缓存数据了.但是对于静态文件 ...

  2. JS 清除IE缓存

    js中自动清除ie缓存方法 — 常用 对于动态文件,比如 index.asp?id=...  或者 index.aspx?id=... 相信有经验的程序员都知道怎样禁止浏览器缓存数据了.  但是对于静 ...

  3. Ajax清除浏览器js、css、图片缓存的方法

    做东东时都是把图片在服务器的地址存放在数据库里面,然后到浏览器中显示,但是后来发现了两个问题. 第一:为了安全起见,js是无法读取本地的图片的,不然你写一个js,岂不是可以获取任何人电脑里面的文件了. ...

  4. js清除浏览器缓存

    浏览器缓存 所有的数据都可以存到服务器中,但这样并不高效,当我们访问网页的时候,一会卡顿,二会浪费服务器的存储空间,三会给服务器造成压力 浏览器缓存,可以提高网站性能和浏览器的速度,但对于需要经常更新 ...

  5. js清除浏览器缓存的几种方法

    2014年9月24日 4692次浏览 关于浏览器缓存 浏览器缓存,有时候我们需要他,因为他可以提高网站性能和浏览器速度,提高网站性能.但是有时候我们又不得不清除缓存,因为缓存可能误事,出现一些错误的数 ...

  6. 用Filter解决乱码和jsp缓存问题

    1) 乱码Filter: 新建一个:CharSetFilter package com.my.filter; import java.io.*; import javax.servlet.*; imp ...

  7. Nginx对于图片,js等静态文件的缓存设置

    以下是自学it网--中级班上课笔记 网址:www.zixue.it Nginx对于图片,js等静态文件的缓存设置 注:这个缓存是指针对浏览器所做的缓存,不是指服务器端的数据缓存. 主要知识点: loc ...

  8. 清除nginx静态资源缓存

    之前写过一篇如何配置nginx缓存及手动清除缓存的文章: http://www.cnblogs.com/Eivll0m/p/4921829.html 但如果有大量缓存需要清理,手动一条条清理就比较慢了 ...

  9. 查看和清除本机DNS缓存记录

    Windows上查看和清除本机DNS缓存记录: ipconfig /displaydns  查看ipconfig /flushdns  清除 貌似Time To Live的单位是秒.

随机推荐

  1. SDUT2140图结构练习——判断给定图是否存在合法拓扑序列

    拓扑序列的判断方法为不存在有向环,代码实现的话有两种,一种是直接去判断是否存在环,较为难理解一些,另一种的话去判断结点入度,如果存在的入度为0的点大于一个,则该有向图肯定不存在一个确定的拓扑序列 #i ...

  2. 盒模型的auto值

    浮动在盒模型的auto值 属性 常规流 浮动 margin-left:auto 尽量撑满包含块 0px margin-right:auto 尽量撑满包含块 0px margin-top:auto 0p ...

  3. 在Android中使用Protocol Buffers(下篇)

    本文来自网易云社区. FlatBuffers编码数组 编码数组的过程如下: 先执行 startVector(),这个方法会记录数组的长度,处理元素的对齐,准备足够的空间,并设置nested,用于指示记 ...

  4. cogs 915. 隐藏口令

    915. 隐藏口令 ★★☆   输入文件:hidden.in   输出文件:hidden.out   简单对比时间限制:1 s   内存限制:128 MB USACO/hidden(译 by Feli ...

  5. Java基础--常用API--集合类相关API

    一.泛型 1.泛型的本质是将类型参数化,即将数据类型作为参数. 2.泛型可以在编译期进行检查,其所有的强制转换是隐式且自动的,提高了代码的安全性. 3.泛型可以用在类(泛型类).接口(泛型接口).方法 ...

  6. 让你的spring-boot应用日志随心所欲--spring boot日志深入分析

    1.spring boot日志概述 spring boot使用Commons Logging作为内部的日志系统,并且给Java Util Logging,Log4J2以及Logback都提供了默认的配 ...

  7. [USACO1.4]等差数列 Arithmetic Progressions

    题目描述 一个等差数列是一个能表示成a, a+b, a+2b,..., a+nb (n=0,1,2,3,...)的数列. 在这个问题中a是一个非负的整数,b是正整数.写一个程序来找出在双平方数集合(双 ...

  8. thinkphp实现登录后返回原界面

    主要思路还是用session记录原地址,在登录后再跳转回原界面 先保存请求login方法界面的url public function savelogin(){ session('returnUrl', ...

  9. HTTP的学习记录(二)头部

    本文主要讲一些 HTTP头部的信息 首先看一段 惊为天人 的文章. 来自于 <淘宝技术这十年> 你发现快要过年了,于是想给你的女朋友买一件毛衣,你打开了www.taobao.com.这时你 ...

  10. 利用mybatis-generator生成po

    import java.io.File; import java.util.ArrayList; import java.util.List; import org.mybatis.generator ...