`
wangcheng
  • 浏览: 1464802 次
  • 性别: Icon_minigender_1
  • 来自: 青岛人在北京
社区版块
存档分类
最新评论

解决jQuery1.1 Ajax请求时cache的问题

    博客分类:
  • ajax
阅读更多
项目里使用jQuery 1.1.3.1版本,遇到的问题是jQuery缓存ajax请求的数据,在jsp和servlet里设置了参数,但还是被jQuery缓存。
java 代码
 
  1. response.setHeader("Cache-Control","no-store");      
  2. response.setHeader("Pragma","no-cache");      
  3. response.setDateHeader("Expires"0);   
html 代码
 
  1. <meta http-equiv="Cache-Control" content="no-store"/>  
  2. <meta http-equiv="Pragma" content="no-cache"/>  
  3. <meta http-equiv="Expires" content="0"/>  

使用上面的参数,也不是完全起作用。

在jquery.com看到其1.2版本的ajax方法添加了cache选项,可以解决缓存问题。
js 代码
 
  1. $.ajax({  
  2.   url: "test.html",  
  3.   cache: false,  
  4.   success: function(html){  
  5.     $("#results").append(html);  
  6.   }  
  7. });  

试用后感觉不错。就准备用1.2版本替换现在的1.1.3,但是发现项目中基于jquery的plugin很多都还是基于jquery 1.1版本,而且到现在还没有放出支持1.2的新版本。自己试着替换了一下,果然出错了。即使用了jQuery 1.1 Compatibility Plugin也不是所有插件都好用。 只好放弃使用1.2的念头。随即开始翻看1.2的代码,发现其ajax cache选项解决缓存的方法非常简单,摘录如下
js 代码
 
  1. if ( s.cache === false && s.type.toLowerCase() == "get" )  
  2.     s.data = (s.data ? s.data + "&" : "") + "_=" + (new Date()).getTime();  

太好了,我只要同样也在jquery 1.1版本的ajax方法的data上也加个时间戳就行了。使用如下方式解决问题
js 代码
 
  1. $.ajax({ url: url,  
  2.              type:"get",  
  3.              dataType:"html",  
  4.              data: "_=" + (new Date()).getTime(),  
  5.              success:function(html){...}  
  6.          });  
分享到:
评论
3 楼 sxczlczsm 2014-04-29  
sssssssssssssssss
[color=red][/color]
2 楼 sxczlczsm 2014-04-29  
[color=red][/color]
[size=small][/size]
ssss
1 楼 cary1130 2008-10-22  
好像用POST方式就不会有缓存的问题了

相关推荐

    服务器端判断Ajax请求

    ### 服务器端判断Ajax请求 在现代Web开发中,异步JavaScript与XML(Ajax)技术被广泛用于构建响应迅速、动态交互的应用程序。Ajax通过在后台与服务器进行数据交换,无需重新加载整个页面即可更新部分网页内容。因此...

    JQuery的ajax的用法在asp中使用$.ajax()实现

    在ASP页面中,服务器端需要处理Ajax请求并返回相应格式的数据。示例代码如下: ```asp response.Expires = -1 response.CacheControl = "no-cache" %&gt; &lt;!--#includefile="../../conn/conn.asp"--&gt; &lt;!--#include...

    HTTP+JS+浏览器缓存技术

    2. 使用 jQuery Ajax 清除浏览器缓存:可以使用 $.ajax() 方法并设置 cache:false,或者使用 If-Modified-Since 和 Cache-Control 请求头来清除浏览器缓存。 3. 使用随机数或随机时间来避免缓存:可以在 URL 参数后...

    ASP.NET-[论坛社区]Asp.NetForums2v1.1源代码.zip

    9. **错误处理和日志记录**:良好的错误处理和日志记录能帮助开发者定位和解决问题。源代码中可能包含自定义的错误页面和日志记录机制,如使用log4net或NLog。 10. **部署和配置**:部署ASP.NET应用涉及IIS服务器的...

    jsp标签库文档说明

    最后,在JSP页面中,我们可以使用jQuery的`$.get`方法发起AJAX请求,获取并处理服务器返回的XML数据: ```javascript $.get('controller?method=isEmptyOfCategory',{id: id, ajax: 'true'},function(response) { ...

    ASP.NET源码——[论坛社区]SpaceBuilder v1.1 正式安装版.zip

    5. **Ajax**与**jQuery**:为了提供更好的用户体验,SpaceBuilder可能使用了Ajax技术进行局部页面更新,而jQuery库则简化了JavaScript操作,实现了高效的DOM操作和动画效果。 6. **多语言支持**:社区软件通常需要...

    Ajax对缓存的处理方法实例分析

    通过在Ajax请求的URL后附加一个随机生成的参数,可以确保每次请求的URL都是独一无二的。例如,使用JavaScript的Math.random()方法生成一个随机数附加在请求地址后。由于每次请求的URL不同,浏览器会将该请求视为一个...

    ASP.NET源码——[论坛社区]SpaceBuilder v1.1 正式源码版.zip

    7. **AJAX与jQuery**:在现代Web应用中,异步交互至关重要。查看源码中的JavaScript部分,学习如何结合ASP.NET和jQuery实现无刷新的用户体验。 8. **SEO优化**:一个好的社区系统需要考虑搜索引擎友好性,了解如何...

    js 使用ajax设置和获取自定义header信息的方法小结

    当Ajax请求完成时,会返回一个`xhr`对象(XMLHttpRequest),其中包含了服务器返回的所有头信息。你可以通过以下两种方法获取: #### 2.1 使用`getResponseHeader(key)` 这个方法用于获取指定的头信息。例如: ```...

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

    3. **Ajax请求更新缓存** 使用Ajax(异步JavaScript和XML)可以检查服务器上的文件是否已更新。通过设置`If-Modified-Since`和`Cache-Control`请求头,可以强制浏览器只在服务器文件更新时才获取新数据。 ```...

    java代码导入Excel表.txt

    ##### 1.3 AJAX请求 ```javascript this.sendAjaxRequest = function (url, type, data) { $.ajax({ url: url, type: type, data: data, dataType: "json", success: function (data) { alert(data.message)...

    struts2项目性能调优三步曲.txt

    此外,对于使用Struts2的Ajax主题或Calendar标签的项目,建议从Struts2的jar包中复制静态内容到项目的`/WEB-INF/classes`目录下,避免每次请求都从jar包中加载资源。 ### 四、模板引擎优化与资源压缩 FreeMarker是...

    java面试宝典

    202、用jdom解析xml文件时如何解决中文问题?如何解析? 48 203、编程用JAVA解析XML的方式. 49 204、EJB2.0有哪些内容?分别用在什么场合? EJB2.0和EJB1.1的区别? 51 205、EJB与JAVA BEAN的区别? 51 206、EJB的基本...

    web课程设计网页规划与设计 基于HTML+CSS+JavaScript制作智能停车系统公司网站静态模板

    - **离线存储**:通过 Application Cache (AppCache) 提供了离线访问网页的能力。 - **表单控件增强**:新增了日期选择器、滑块等输入类型,简化了数据验证。 - **拖放功能**:`drag` 和 `drop` 事件使得文件或数据...

    酷炫的爆栈网源码.zip

    AJAX (Asynchronous JavaScript and XML) Selector Priority Specificity Box Model W3C HTML CSS XHTML XML HTML (HyperText ...

    java开源包1

    Smart Cache 是一个采用 Java 开发的 HTTP/1.1代理服务器,也可以用来作为Web的缓存系统。 高性能的JSON处理 Jackson Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash ...

    java开源包11

    Smart Cache 是一个采用 Java 开发的 HTTP/1.1代理服务器,也可以用来作为Web的缓存系统。 高性能的JSON处理 Jackson Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash ...

    java开源包2

    Smart Cache 是一个采用 Java 开发的 HTTP/1.1代理服务器,也可以用来作为Web的缓存系统。 高性能的JSON处理 Jackson Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash ...

    java开源包3

    Smart Cache 是一个采用 Java 开发的 HTTP/1.1代理服务器,也可以用来作为Web的缓存系统。 高性能的JSON处理 Jackson Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash ...

    java开源包6

    Smart Cache 是一个采用 Java 开发的 HTTP/1.1代理服务器,也可以用来作为Web的缓存系统。 高性能的JSON处理 Jackson Jackson 是一个 Java 用来处理 JSON 格式数据的类库,性能非常好。 哈希计算工具 java-hash ...

Global site tag (gtag.js) - Google Analytics