问题引入:今天在做一个功能时,发现一个让人头痛的问题,那就是该功能通过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) { } }); }