zoukankan      html  css  js  c++  java
  • IE8 ajax缓存问题

    娘希匹,又遇到缓存问题了。

    下面的代码,在其他浏览器都是正常的,但是在IE8中出现诡异问题。

    
                $.ajax({
                    url:dataUrl,
                    data:encodeURI(currentjsonform),
                    dataType:'JSON',
                    success:function(item){
                        debugger;
                       ....
                    }
                });

    经过仔细排查,尼玛是 IE8 存在的 ajax 缓存问题。尼玛,执行到这里,实际上,并没有访问我们后台的代码,而是使用了以前缓存的结果,后台进行调试时,没有反应,才发现是这个问题!!!!IE8肯跌啊。

    但是 奇怪的是,很多地方都是这样的代码,为什么只有这里被缓存,而其他地方没有缓存问题呢?

    后来想通了:因为这个ajax调用每次返回的结果是一样的

    解决方法

    1. 

    $.ajaxSetup({ cache: false });
    

    2. 参数加上属性:cache:false

                $.ajax({
                    url:dataUrl,
                    data:encodeURI(currentjsonform),
                    dataType:'JSON',
                    cache:false,
                    success:function(item){
                        debugger;
                       ....
                    }
                });    

    3. 还可以在 url 后面加上时间戳等方法。

    教训

    程序员真是应该:过马路要两边看!

    不要太相信默认值,需要什么属性,一定要指明。所以最好每次都指明: cache:false,或者每个js 页面保证在最开始处执行一次: 

    $.ajaxSetup({ cache: false });

    其实 路径带上时间戳或者随机数的方法,有时并不可靠!可能是浏览器会忽略它吧。反正IE8多次遇到 url带时间戳失效的情况。

  • 相关阅读:
    动态规划--数字三角形问题
    C#操作Office.word(一)
    【算法参考】动态规划
    数据结构--图的定义和存储结构
    重定向输入输出流--freopen
    C++内联函数、函数模板之于头文件
    C++静态局部对象
    C++函数模板
    条款05:了解C++默默编写并调用哪些函数
    设计模式 之 装饰器模式
  • 原文地址:https://www.cnblogs.com/digdeep/p/5653240.html
Copyright © 2011-2022 走看看