`
Odysseus_110
  • 浏览: 120377 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

$.getJSON 缓存

阅读更多

使用jQuery的$.getJSON函数似乎是做了缓存处理,比如struts中有一个action是输出的json格式的数据,action路径是getsyncpath:



 function getResult(){
 		$.getJSON( getsyncpath,null,function call(data){
		    var flag_sync = data.result;
		    alert(flag_sync);
		    if(flag_sync == true) {
		     	$("#waitdiv").hide();
				$("#main").show('slow');
		    }else {
		    	setTimeout(function() { getResult() }, interval_getSyncflag);
		    }
    	});
 }
 

   这里不管是用循环还是setTimeout 还是setInterval  getResult函数都只执行一次,alert(flag_sync) 每次都会弹出,但是不执行getsyncpath 里的 action,在action中跟踪输出可以看出action根本没有被调用,即使数据库的数值变化了jQuery也不调用action。只有在另外一张网页直接打开getsyncpath 的json输出并且刷新输出 这里的网页才会再次调用action。
   解决办法:在getsyncpath 连接后面加上一个时间戳,加一个参数&time=new Date();这样每次生成的链接都不同了,就避免了缓存的情况。
分享到:
评论
7 楼 Odysseus_110 2012-06-27  
terryang 写道
lz加上时间也不太合适,刷新太快的话还是有出不来的可能。所以加一个
+"&time="+Math.random()

就好了,狂刷 没事

嗯嗯,你这个方法 更好些...
6 楼 ll.james 2012-06-21  
5楼的,真管用
通知公告模块
A.通知公告的类型没有实现控制
B.通知公告的审批都只支持一条,查看反馈,或是提出撤销申请的时候也是支持一条。(ok)
C.通知公告审核人点击审核时,弹出为通知的具体内容,底下为意见栏和审批的按钮。(ok)
D.系统中如果是两个级别的流程,统一名为上报,审核,不应该有些模块出现审批字眼,原型中不一定都对,有疑问的提出来。(ok)
E.点击撤销,也弹出通知的具体内容,只是添加两栏,一栏为提出人,系统自动加载,一栏为撤销原因。(ok)


对于通知公告发送上报,或者是撤销上报给审核人,审核人都有权限修改通知公告,在审核查看时不要设置为只读,因为有可能需要修改。
                                                   能需要修改
5 楼 terryang 2010-07-28  
lz加上时间也不太合适,刷新太快的话还是有出不来的可能。所以加一个
+"&time="+Math.random()

就好了,狂刷 没事
4 楼 taoj555 2010-06-25  
$.ajaxSetup({ cache: false }); 这个是最简单有效的解决办法
3 楼 xujunJ2EE 2009-12-30  
可以在json参数中加入一个时间戳
2 楼 Odysseus_110 2009-12-11  
xujunJ2EE 写道
你这样只能用在不传json参数上,如果是传递json参数,那么jquery会忽视你在url后面加的时间戳,而是用json参数组成url的参数来代替你的时间戳,结果还是缓存

恩,对,getsyncpath只是请求一个action然后得到json数据,没有要传递json数据,如果照你说的这样,有什么好的办法解决吗?
1 楼 xujunJ2EE 2009-12-11  
你这样只能用在不传json参数上,如果是传递json参数,那么jquery会忽视你在url后面加的时间戳,而是用json参数组成url的参数来代替你的时间戳,结果还是缓存

相关推荐

    Jquery中$.getScript()$.getJSON

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

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

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

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

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

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

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

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

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

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

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

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

    2. $.getJSON的缓存问题: 当使用$.getJSON方法时,如果请求的URL没有变化,那么在Internet Explorer(IE)浏览器中,可能会遇到缓存问题。这是因为IE浏览器会缓存GET请求的响应结果,当再次发起相同的请求时,...

    $.ajax()方法详解

    以下是$.ajax()方法的主要参数及其详细解释: 1. **url**:指定发送请求的目标URL,可以是相对路径或绝对路径,如果不指定,默认为当前页面地址。 2. **type**:请求的HTTP方法,如"GET"或"POST"。默认是"GET"。...

    Jquery getJson

    - 考虑使用`$.ajax()`的`dataType: 'json'`替代`$.getJSON()`,以便利用更多的AJAX选项。 - 避免频繁的异步请求,尽可能合并请求或使用服务器端缓存。 - 对于大量数据,考虑使用分页或者懒加载技术。 总结,`jQuery...

    JQ中$.ajax()方法详解

    ### JQ中$.ajax()方法详解 在前端开发领域,jQuery因其简洁易用而深受开发者喜爱。其中,`$.ajax()`方法是实现异步数据请求的核心功能之一,它简化了与服务器交互的过程,使得前端页面无需刷新即可更新数据或状态。...

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

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

    jQuery 封装Ajax

    jQuery的Ajax方法主要包括`$.ajax()`, `$.get()`, `$.post()`, `$.getJSON()`等。这些方法都提供了一种优雅的方式来发送和接收数据,同时提供了丰富的配置选项来处理各种情况。 ### 1. `$.ajax()` `$.ajax()`是...

    使用$.Ajax调用后台.aspx

    默认情况下,$.ajax请求会启用缓存,除非明确禁用(通过`cache: false`设置)。对于需要每次获取最新数据的情况,应关闭缓存。 总结,使用$.ajax调用后台.aspx页面是前端与服务器交互的重要手段,它涉及HTTP请求、...

    jQuery中Ajax的get、post等方法详解.docx

    本文主要解析jQuery中的$.get()、$.post()等方法,以及相关的$.getScript()和$.getJSON()方法。 首先,$.get()方法是使用HTTP GET请求方式向服务器获取数据。其基本语法如下: ```javascript $.get(url, data, ...

    jQuery中Ajax的get、post等方法详解.pdf

    本文主要解析jQuery中的$.get()、$.post()等Ajax方法,以及相关的$.getScript()和$.getJSON()方法。 首先,$.get()方法是使用GET方式发送异步请求,基本语法如下: ```javascript $.get(url, data, callback, type...

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

    http://wenku.baidu.com/view/3d2b01a93169a4517723a3f3.html Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结 http://zhuanlan.zhihu.com/FrontendMagazine/19854868 基于单个 Div 的 CSS 绘图 ...

Global site tag (gtag.js) - Google Analytics