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

在工作中主页实现Ztree Ztree的数据是后台返回的JSON对象

因为树是固定的所以每次刷新树

$.getJSON 的url都是相同的 问题来了 我修改 或者 新增树节点 然后刷新tree IE竟然毫无变化 在其他浏览器上面都OK

这让我纠结了

然后在网上搜索了一下资料发现 解决办法

解决办法:

Jquery 的 $.getJSON请求有一个缓存机制 就是在请求相同URL访问后台时候 他会直接从页面缓存的数据中取出来数据 而不是请求后台

所以我们要改变一个URL

这是我们的URL var url =“XXXX/XXX”

下面来一个 生成随机数的方法

代码如下:

function GetRandomNum(Min,Max)
{
var Range = Max - Min;
var Rand = Math.random();
return(Min + Math.round(Rand * Range));
}

然后改变我们的URL

代码如下:

var i=GetRandomNum(1,100);
url=url+“&random=”+i;

然后把URl穿进去就可以了 问题解决

(0)

相关推荐

  • jQuery中$.get、$.post、$.getJSON和$.ajax的用法详解

    当我们用javascript写ajax程序写得很"开心"的时候,突然有人告诉你有一种东西叫jquery,它会告诉你不直接和HttpRequest是多么的快乐,同时你再也不需要再烦恼纠结的ajax乱码问题,更幸福的是你的js代码将大大地简化,看完本文,你会发现,ajax,简单的来讲就是一句话的事情. 1.$.get $.get()方法使用GET方式来进行异步请求,它的语法结构为: $.get( url [, data] [, callback] ) 解释一下这个函数的各个参数: url:

  • jQuery.get、jQuery.getJSON、jQuery.post无法返回JSON问题的解决方法

    经过尝试,只需要在$.ajax中加入 contentType: "application/json; charset=utf-8"选项就可以了,这是因为在.net 3.5以后要对contentType进行检查,所以仅仅指定dataType的话.net就不会返回JSON了,那么我们的请求自然也就无法请求到JSON数据了.正确写法就是这样了: 复制代码 代码如下: var url = "/Services/AccountService.asmx/UserExists";

  • JQuery中的$.getJSON 使用说明

    原型如下: jQuery.getJSON( url, [data], [callback] ) 跨域加载JSON数据. url: 发送请求的地址 data : (可选) 待发送key/value参数 callback: (可选) 载入成功时的回调函数 主要用于客户端获取服务器JSON数据.简单示例: 服务器脚本,返回JSON数据: $.getJSON.php $arr=array("name"=>"zhangsan", "age"=>

  • jquery $.getJSON()跨域请求

    1,同一域名下和其他的请求可以是一样的 js: 复制代码 代码如下: var url="http://localhost:2589/a.ashx"; $(function(){ $.getJSON(url,function(data){ alert (data.Name); }) }); 服务器返回字符串: {"Name":"loogn","Age":23} 2,不同域名下 js: 复制代码 代码如下: var url=&qu

  • jQuery与getJson结合的用法实例

    本文实例讲述了jQuery与getJson结合的用法.分享给大家供大家参考.具体如下: 这里分析jQuery与getJson结合的一个应用实例,因为json保存数据比较轻巧实用,所以个人比较喜欢Json功能,用这个简单写了一个导航菜单的功能,比较简单的那种,目的是演示如何将jQuery与Json结合起来. 运行效果截图如下: 具体代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "h

  • jQuery+ajax中getJSON() 用法实例

    实例 从 test.js 载入 JSON 数据并显示 JSON 数据中一个 name 字段数据: 复制代码 代码如下: $.getJSON("test.js", function(json){   alert("JSON Data: " + json.users[3].name); }); 定义和用法 通过 HTTP GET 请求载入 JSON 数据. 在 jQuery 1.2 中,您可以通过使用 JSONP 形式的回调函数来加载其他网域的 JSON 数据,如 &q

  • jquery的$getjson调用并获取远程的JSON字符串问题

    代码如下: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equ

  • Jquery getJSON方法详细分析

    准备工作·Customer类 复制代码 代码如下: public class Customer{    public int Unid { get; set; }    public string CustomerName { get; set; }    public string Memo { get; set; }    public string Other { get; set; }} ·服务端处理(Json_1.ashx) 复制代码 代码如下: Customer customer =

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

    详细解读Jquery各Ajax函数: $.get(),$.post(),$.ajax(),$.getJSON() 一,$.get(url,[data],[callback]) 说明:url为请求地址,data为请求数据的列表,callback为请求成功后的回调函数,该函数接受两个参数,第一个为服务器返回的数据,第二个参数为服务器的状态,是可选参数. 而其中,服务器返回数据的格式其实是字符串形势,并不是我们想要的json数据格式,在此引用只是为了对比说明 复制代码 代码如下: $.get("dat

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

    在工作中主页实现Ztree Ztree的数据是后台返回的JSON对象 因为树是固定的所以每次刷新树 $.getJSON 的url都是相同的 问题来了 我修改 或者 新增树节点 然后刷新tree IE竟然毫无变化 在其他浏览器上面都OK 这让我纠结了 然后在网上搜索了一下资料发现 解决办法 解决办法: Jquery 的 $.getJSON请求有一个缓存机制 就是在请求相同URL访问后台时候 他会直接从页面缓存的数据中取出来数据 而不是请求后台 所以我们要改变一个URL 这是我们的URL var u

  • ajax调用中ie缓存问题解决方法

    本文实例分析了ajax调用中ie缓存问题解决方法.分享给大家供大家参考,具体如下: ajax请求调用的过程中发现的问题:后台请求是一个简单的.aspx文件,而这个页面又没有考虑过缓存的影响,使用ajax调试的时候发现有时候根本不走后台代码直接返回结果了,所以估计是受到浏览器缓存的影响.网上搜了一下,果然是缓存的问题:"IE中如果XMLHttpRequest提交的URL与历史一样则使用缓存,根本不向服务器端提交.因此无法取到刚提交的数据或新的数据". 解决方法大致有下面几种: 1.只改进

  • IE9下Ajax无法刷新数据的缓存问题解决方法

    使用jQuery的getJSON从后台定时获取数据并刷新界面,使用以下方法时,在Chrome,Firefox下没问题,但在IE9下却无法刷新数据 $.getJSON(webApp + "/GetShowData.do?limit=" + limit,function(data){ //****************** } 原因是,在IE9下,进行Ajax请求时,若与之前请求相同,则不会再从浏览器获取数据,而是直接从本地获取,因此,在请求中加上时间戳,IE9便会认为是不同的请求,代码

  • IE6下CSS图片缓存问题解决方法

    用一句代码即可搞定: 复制代码 代码如下: document.execCommand("BackgroundImageCache", false, true); 当然为了其它浏览器上能正常通过,需要做下判断后调用,才更安全: 复制代码 代码如下: if(Browser.isIE6){ try{ document.execCommand("BackgroundImageCache", false, true); } catch(e1){} } 平台检测代码可以这样写,

  • Jquery validation remote 验证的缓存问题解决方法

    最近项目中一直在用 Jquery validation 做校验,结合bootstrap 和 jquery form 感觉效果不错.但是remote验证的缓存问题让我头痛了很久,几乎就像放弃这款插件了. 举例说明: 现有学校,年级,班级实体 在同一学校下不能有相同的年级,在同一年级下不能有相同的班级 以同一学校下不能有相同年级为例,在验证的时候用remote方式: JS 复制代码 代码如下: "gradeId" : { required : true, min : 0, remote:

  • Discuz!下Memcache缓存实现方法

    前言:在PHP+MySQL架构的站点中,本文重点从MySQL的角度去分析如何使Discuz!论坛(或者类似的PHP+MySQL架构的程序)应对大访问量.同时给出一些使用Memcache去减轻MySQL压力的建议.其中很多数据是个人测试的结果,如有不同意见,敬请留言告之.另外由于个人思维的问题,行文比较跳跃,特此声明! 系统分析:单纯的从MySQL的角度出发,单台MySQL的数据库负载到每天上亿次的操作(每秒大概1100次MySQL操作,然后乘以86400)应该不是非常困难的事情.按照这个数据也就

  • jquery库或JS文件在eclipse下报错问题解决方法

    在工程中导入jquery-1.7.1之后一直有一个红叉叉,虽然不会影响程序功能,但是看着非常不舒服,而且在提交项目代码到SVN服务器的时候有提示,决心把这红叉叉给搞掉.网上搜了下基本都不能解决问题,然后在尝试各种方式之后发现下面的方法可行: 1右击工程,选择property. 2在弹出的界面中选择Validation 3点击右边的JavaScript Syntax Validator的Settings 4在弹出的窗口中点击Add Exclude Group 5在Exclude Group中把jq

  • Ajax中浏览器的缓存问题解决方法

    每次清除缓存后,就会得到一个新的数据,所以归根到底就是浏览器缓存问题.纠结了很久,终于解决了,在这里总结一下. 我们都知道ajax能提高页面载入的速度主要的原因是通过ajax减少了重复数据的载入,也就是说在载入数据的同时将数据缓存到内存中,一旦数据被加载其中,只要我们没有刷新页面,这些数据就会一直被缓存在内存中,当我们提交 的URL与历史的URL一致时,就不需要提交给服务器,也就是不需要从服务器上面去获取数据,虽然这样降低了服务器的负载提高了用户的体验,但是我们不能获取最新的数据.为了保证我们读

  • Ext JS Grid在IE6 下宽度的问题解决方法

    解决方法: 1.修改ext-all.css,找到.x-grid3-header-offset,修改为.x-grid3-header-offset{padding-left:1px;/*width:10000px;*/width:auto;} 2.在grid中加入下面代码: 复制代码 代码如下: monitorResize: true, doLayout: function() { this.setSize(Ext.get(this.getEl().dom.parentNode).getSize(

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

    复制代码 代码如下: $.ajaxSetup({ cache: false }); $.getJSON("/MyQueryUrl",function(data,item) { // do stuff with callback data $.ajaxSetup({ cache: true }); }); 原因:getJson在IE下IE下默认会使用浏览器缓存,所以导致数据不显示 解决:让其不要使用缓存 这里有更多的解决方法 http://stackoverflow.com/questi

随机推荐