解决IE下Ajax请求无效,IE请求缓存问题

首先说明一下IE的这个“亮点”,IE有个缓存机制,对请求的url进行判断,发现短时间内请求的url相同,则使用缓存的数据,而不是去重新向服务器获取一次数据。数据缓存也有好处,但对于需要经常去后台获取数据更新的需求来说,这就是个麻烦了。
提问:那怎么解决这个问题呢?
分析:既然是对相同的url认为是重复请求,那我就想办法每次请求的url值都不相同,同时还保证是我要的数据。我们采用在url中增加一个无用的参数,且这个参数每次都在变(时间或随机数!)。

这里举个简单的例子,从后台获取实时时间。普通的做法如下,此时在chrome、FireFox上不停的向后台请求获取实时数据,会发现页面上的时间会不停的改变。但换到IE浏览器下,第一次点击时间会出现,当不断重复点击时,时间仍旧停留在第一次获取到的时间上。

一:在url后面加个随机数

$.ajax({
        type: "GET",
        url: "/platform/lang?random="+Math.random(),
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (result){},
         error:function(result){}
    });

二:在url后面加时间戳

$.ajax({
        type: "GET",
        url: "/platform/lang?timestamp="+new Date().getTime(),
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (result){},
         error:function(result){}
    });

以上是我采用的方法,大家也可以参考一下一篇文章,没有尝试:
https://dacoolbaby.iteye.com/blog/1938440

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,712评论 1 45
  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,027评论 2 89
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,142评论 1 32
  • 闲来无事,在手机上无意翻看了一些言情小说,不知不觉就沉迷其中了,故事里的男主人公简直都是帅得掉渣,女主人公都是美若...
    一笑而过2023阅读 881评论 0 0
  • UIScrollView*mainView = [[UIScrollViewalloc]initWithFrame...
    amds阅读 1,158评论 0 1