注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

星期五

明天不上班

 
 
 

日志

 
 
关于我

一个特立独行的Java程序员,比较宅,上上网,写博客,听音乐,看电影。

网易考拉推荐

Ajax开发IE的缓存问题  

2011-01-12 20:38:46|  分类: Javascript |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

如果你遇到Ajax应用在火狐下OK,但在IE下没有变化的情况,那么有可能是IE缓存引起的问题。

方法1:服务器端代码加入response.setHeader("Cache-Control", "no-cache, must-revalidate");

方法2:用JavaScriptAjax提交的时候加入一个随机数作为URL中的一个参数。req.open(url + "&" + Math.random).

原因IE中如果XMLHttpRequest提交的URL与历史一样则使用缓存,根本不向服务器端提交。因此无法取到刚提交的数据。

我们一般在服务器端处理是 加filter

例如

web.xml

 <filter>
      <filter-name>removeBrowserCacheFilter</filter-name>
      <filter-class>org.hurry.gui.common.web.filter.RemoveBrowserCacheFilter</filter-class>
  </filter>
  <filter-mapping>
      <filter-name>removeBrowserCacheFilter</filter-name>
      <url-pattern>/*</url-pattern>
  </filter-mapping> 

Java File

package org.hurry.ci.gui.common.web.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletResponse;

public class RemoveBrowserCacheFilter implements Filter{

    public void init(FilterConfig arg0) throws ServletException {
    }
   
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
        HttpServletResponse httpResponse = (HttpServletResponse) res;
        httpResponse.setHeader("Cache-Control","no-cache");
        httpResponse.setHeader("Cache-Control","no-store");
        httpResponse.setDateHeader("Expires", 0);
        httpResponse.setHeader("Pragma","no-cache");   
        chain.doFilter(req, httpResponse);
    }


    public void destroy() {   
    }

}

  评论这张
 
阅读(147)| 评论(0)
推荐

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017