图片缓存BUG导致Ajax无效的解决

        关于IE浏览器的图片缓存BUG问题已经不是什么新鲜事儿了,但近日在开发一个Ajax技术的站点时,却意外地再次同该问题不期而遇。
        在使用XMLHTTP request的时候,我意外地发现,由于图片缓存的BUG问题,导致Ajax代码无法执行,通过分析,发现所有的页面唯独首页使用Ajax获取资源列表会因此BUG而停止执行,页面状态栏显示错误,其中错误信息为:对象为NULL。
        解决方案:

        1、插入如下脚本一段儿:
var imgHash = new Object();
function regImg(e,src){
if(src.indexOf("[%")>0)return;
var a = imgHash[src];
e.οnerrοr=null;
if(a==null) {
a=imgHash[src]=[];
a[0]=new Image();
a[1]=e;
a[0].οnlοad=function(){setImges(a)};
a[0].src=src;
setTimeout("imgHash[/""+src+"/"]=null",65535)
}else{
if(a[0].readyState=="complete")
e.src=src;
else
a[a.length]=e;
}

}
function setImges(a){
for(var i=1;i<a.length;i++)
a[i].src=a[0].src;
}

             2、替换页面上的图片链接:
                   <IMG οnerrοr='regImg(this,"http://www.cauf.net/images/cauf.gif")' src="about:blank" οnclick="window.navigate('http://www.cauf.net');">

             如此,页面中的Ajax相关脚本均可以顺利运行。

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值