`
mfan
  • 浏览: 340862 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
社区版块
存档分类
最新评论

jQuery.getJSON的缓存问题的解决办法

阅读更多

今天做测试工作,发现了一个令我费解的问题,jquery的getJson方法在firefox上运行可以得到返回的结果,但是在ie8上测试,竟发现没有发送请求,故不能取到任何返回的结果,经历了一翻周折,找到了百度空间http://hi.baidu.com/fengluolyn/blog/item/0ac6b7130d8985ddf7039e83.html上的解决办法,便摘抄了下来……

1 让每次调用的url都不一样
方法:在参数中加一个随机数。
例1:
jQuery.getJSON("$!{Root}/a/a/s.ashx",{ID:"123456",Name:"john",random:Math.random()},function(responseText){}
例2:
"xxx.aspx?randID="+Math.random
例3:
"xxx.aspx?randID="+ escape(new Date())
2 将cache设为False
$.ajax不缓存版:
$.ajax({
type:"GET"
url:'test.html' ,
cache:false,
dataType:"html",
success:function(msg){
alert(msg);
}
});
3.在labels.html文件的顶部加入以下声明:

<META HTTP-EQUIV="Pragma" CONTENT="no-cache">

<META HTTP-EQUIV="Expires" CONTENT="-1">
4.load函数不仅可以调用HTML,也可以调用script,比如labels.php,可以在php文件里使用header函数:

<?php

header("Cache-Control: no-cache, must-revalidate");

?>
5 使用post代替get方法。
使用Post方式需注意:
设置header的Context-Type为application/x-www-form-urlencode确保服务器知道实体中有参数变量. 通常使用XmlHttpRequest对象的SetRequestHeader("Context-Type","application/x-www- form-urlencoded;")。例:

xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
参数是名/值一一对应的键值对,每对值用&号隔开.如 var name=abc&sex=man&age=18,注意var name=update.php?

abc&sex=man&age=18以及var name=?abc&sex=man&age=18的写法都是错误的;
参数在Send(参数)方法中发送,例: xmlHttp.send(name); 如果是get方式,直接 xmlHttp.send(null);

服务器端请求参数区分Get与Post。如果是get方式则$username = $_GET["username"]; 如果是post方式,则$username = $_POST["username"];
6 在服务端加 header("Cache-Control: no-cache, must-reva lidate");
7 在ajax发送请求前加上 xmlHttpRequest.setRequestHeader("If-Modified-Since","0");
8 在ajax发送请求前加上 xmlHttpRequest.setRequestHeader("Cache-Control","no-cache");

分享到:
评论
1 楼 许自己一个未来 2012-07-23  
用Post方式需注意: 我也遇到了这样的问题,学习啦,谢谢

相关推荐

    Jquery getJson

    `jQuery.getJSON`是jQuery库中的一个非常重要的函数,它用于从服务器端异步获取JSON格式的数据,这对于前端与后端的数据交互具有显著的意义。在本文中,我们将深入探讨`jQuery.getJSON`的工作原理、使用方法以及如何...

    ie下jquery.getJSON的缓存问题的处理方法

    本文将详细介绍$.getJSON缓存问题的表现、原因以及如何在IE环境下解决此问题。 首先,$.getJSON方法是基于jQuery的$.ajax方法实现的。在IE浏览器中,特别是IE8及更早版本中,由于浏览器对于AJAX请求的缓存处理机制...

    Jquery中$.getScript()$.getJSON

    在jQuery库中,`$.getScript()`和`$.getJSON()`是两种非常实用的异步数据获取方法,它们分别用于加载JavaScript脚本和获取JSON格式的数据。这些方法都是基于jQuery的`$.ajax()`基础构建的,提供了更为简洁和方便的...

    $.getJSON在IE下失效的原因分析及解决方法

    为了让$.getJSON在IE浏览器中也能够正常工作,需要在调用$.getJSON之前,通过jQuery的$.ajaxSetup方法设置全局的AJAX请求不使用缓存。具体的做法就是在发送AJAX请求之前,设置cache参数为false。这样做之后,AJAX...

    jQuery中$.ajax()和$.getJson()同步处理详解

    在jQuery中,$.ajax()和$.getJSON()是两种常见的用于发送Ajax请求的方法,它们主要用于与服务器进行异步数据交互。然而,在某些特定场景下,如处理表单提交前的验证,可能需要同步处理请求,确保数据正确无误后再...

    Jquery $.getJSON 在IE下的缓存问题解决方法

    3. 解决$.getJSON的IE缓存问题: 为了解决这一问题,开发者们通常会采取措施绕过浏览器的缓存机制。在给定的文档中,提到了一种解决方案,即通过在URL后追加一个随机数参数来强制浏览器请求新的数据。具体方法是...

    通过jquery的$.getJSON做一个跨域ajax请求试验

    在本文中,我们将探讨如何使用jQuery的`$.getJSON`方法进行跨域Ajax请求,并通过一个简单的预约登记接口的示例来展示其实现过程。首先,理解`$.getJSON`是jQuery库提供的一个便捷方法,用于异步获取JSON格式的数据,...

    学习jQuery中的Ajax——$.get()方法

    结合其他jQuery的Ajax方法,如`$.post()`和`$.getJSON()`,我们可以构建出功能丰富的、用户体验良好的Web应用。在实际开发中,理解并熟练运用这些工具至关重要,以便更好地优化和提升我们的项目。

    无刷新分页 jquery.pagination.js

    3. **Ajax请求**:jQuery中的$.ajax或$.getJSON方法用于发起异步请求,获取分页数据。这些请求通常包括URL、请求类型(GET或POST)、成功回调函数等参数。 4. **前端渲染**:收到服务器响应后,使用jQuery操作DOM,...

    Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结

    在jQuery中,有四种主要的Ajax方法用于与服务器进行异步数据交互,它们分别是$.get(), $.post(), $.ajax()和$.getJSON()。这些方法简化了JavaScript中的Ajax操作,使得开发者能够更加便捷地处理数据交互。 1. **$....

    JSON与JQUERY

    5. **跨域问题**:了解AJAX请求时可能出现的同源策略限制,并探讨如何通过JSONP(JSON with Padding)或者CORS(Cross-Origin Resource Sharing)来解决这个问题。 6. **性能优化**:讨论如何通过缓存、预加载和...

    .net C# 学习过程中收藏的一些比较有用的和感兴趣的链接

    http://wenku.baidu.com/view/25ddbf420b4e767f5acfcee0.html jQuery.getJSON的缓存问题的解决办法 http://wenku.baidu.com/view/3d2b01a93169a4517723a3f3.html Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的...

    jquery获取json数据的并分页案例

    要使用jQuery获取JSON数据,我们通常会使用`$.ajax()`或`$.getJSON()`方法。`$.ajax()`是一个更全面的异步HTTP(Ajax)请求方法,可以处理各种类型的HTTP请求,包括GET和POST。而`$.getJSON()`是`$.ajax()`的一个...

    jquery.ui.autocomplete-Ajax

    这通常是通过`jQuery.ajax()`或者简化的`$.getJSON()`等方法完成的。以下是一个简单的示例,展示如何向服务器发送GET请求,获取JSON格式的建议数据: ```javascript source: function(request, response) { $.ajax...

    Packtpub.jQuery.1.4.Reference.Guide.Jan.2010.rar

    同时,也会介绍如何调试jQuery代码,以帮助开发者解决问题。 通过阅读《Packtpub.jQuery.1.4.Reference.Guide.Jan.2010》,开发者不仅可以掌握jQuery 1.4的核心知识,还能提升Web开发的整体技能,为构建现代、响应...

    jquery-1.11.3.js 、jquery-1.11.3.min.js 【官方jquery包 js】

    jQuery 1.11.3在性能上做了优化,例如使用Sizzle选择器引擎提升选择元素的速度,以及缓存查找结果以减少重复查询,这些改进使代码在大型项目中依然保持高效运行。 总的来说,jQuery 1.11.3是前端开发的重要工具,...

Global site tag (gtag.js) - Google Analytics