关于ie中ajax请求缓存问题(页面刷新以后,在IE中经过ajax请求的数据不会刷新)

问题引入:今天在做一个功能时,发现一个让人头痛的问题,那就是该功能通过ajax来实现,当数据库中的数据发生改变刷新页面时:在Google Firox中一切显示正常,但是当在IE中时,刷新页面以后,数据不发生改变。

问题分析:这是我第一次遇见这样的问题,刚开始时我也很纳闷,这是什么原因,不知所措。当我通过一步步的调试发现,原来是因为在IE中刷新页面时,ajax根本都没有执行。通过在网上查找资料,原来恍然大悟,就是因为IE的      缓存问题。因为在ajax请求的URL路径一样,在IE 中就不会再次请求。

解决办法:其实只要知道原因解决这个问题就变得迎刃而解了。就是给ajax的请求url一个假的动态路径,从而来骗取浏览器的请求。具体实现就是在url后面添加一个随机数即可。

    代码示例如下:

function Getcooper() {
    var myDate = new Date(); 

    $.ajax({

        //处理ajax请求
        url: '../AjaxClass/opert_coopimgInfor.ashx?'+myDate.getMinutes()+myDate.getSeconds(),
        
        cache: true,
        beforeSend: function () {
            //这里是开始执行方法,显示效果,效果自己写
            $('#links').html('<img  alt="我正在加载.." style="margin-left:180px;_margin-left:180px; width:18px; height:18px; margin-top:20px;_margin-top:20px" src="../Images/Loading.gif"/>');
        },
        complete: function () {
            //方法执行完毕,效果自己可以关闭,或者隐藏效果
        },
        success: function (response) {
            if (response=="1") {
                $('#links').hide();
            }
            else {
                $('#links').html(response);
            }
        },

        error: function (data) {
        }
    });
}

 

 

posted @ 2013-07-30 16:43  程序员修炼之旅  阅读(1281)  评论(0编辑  收藏  举报
END
欢迎各位小伙伴关注我的公众号(程序员修炼之旅),里面会分享一些技术类干货,同时也是一个技术沟通交流平台,谢谢大家的支持。