最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

IE缓存策略的BUG的解决方法_javascript技巧

来源:动视网 责编:小采 时间:2020-11-27 20:37:35
文档

IE缓存策略的BUG的解决方法_javascript技巧

IE缓存策略的BUG的解决方法_javascript技巧:今天是发现bug的高产期。 IE在解析innerHTML的时候居然会忽略Cache策略,简单的重复加载图片。请看以下代码: var st= var ar = new Array(101); window.onload=function(){ document.body.innerHTML = ar.jo
推荐度:
导读IE缓存策略的BUG的解决方法_javascript技巧:今天是发现bug的高产期。 IE在解析innerHTML的时候居然会忽略Cache策略,简单的重复加载图片。请看以下代码: var st= var ar = new Array(101); window.onload=function(){ document.body.innerHTML = ar.jo
 今天是发现bug的高产期。

IE在解析innerHTML的时候居然会忽略Cache策略,简单的重复加载图片。请看以下代码:





var st=""
var ar = new Array(101);
window.onload=function(){
document.body.innerHTML = ar.join(st);
}
//-->


保存到本地作为一个htm文件,然后用IE打开(允许脚本运行),然后用http监视工具可以看到,IE发起了100个请求,一个都不cache!

在FireFox下面就没有问题,只发起一个请求。
代码如下:
用这段代码可以解决这个问题




var imageholder=new Image()
imageholder.src="http://imgcache.qq.com/qzone/item/orig/11/3179_5.gif"





document.getElementById("div1").innerHTML =
"";
document.getElementById("p1").src=imageholder.src;
document.getElementById("p2").src=imageholder.src;
document.getElementById("p3").src=imageholder.src;




代码如下:
这个bug的官方描述见:

http://support.microsoft.com/default.aspx?scid=kb;en-us;319546

此外 http://www.bazon.net/mishoo/Articles/msie/958/ 指出background-image会带来一样的问题。

ms的官方解决方案是象这样:




var st="http://imgcache.qq.com/qzone/item/orig/11/3179_5.gif\">"
var ar = new Array(101);
function test(){
document.getElementById("d").innerHTML = ar.join(st);
document.getElementById("d").style.display="block";
}
setTimeout("test()",1000);
//-->

http://imgcache.qq.com/qzone/item/orig/11/3179_5.gif">

如果不怕麻烦的话,这样做可以更快一点点,也更保险:





var st="http://imgcache.qq.com/qzone/item/orig/11/3179_5.gif\">"
var ar = new Array(101);
function test(){
document.getElementById("d").innerHTML = ar.join(st);
document.getElementById("d").style.display="block";
}
//-->

http://imgcache.qq.com/qzone/item/orig/11/3179_5.gif" onreadystatechange="if(readyState=='complete')setTimeout('test()',0)">



更多方法:
http://www.blogjava.net/emu/archive/2006/03/01/33082.html

文档

IE缓存策略的BUG的解决方法_javascript技巧

IE缓存策略的BUG的解决方法_javascript技巧:今天是发现bug的高产期。 IE在解析innerHTML的时候居然会忽略Cache策略,简单的重复加载图片。请看以下代码: var st= var ar = new Array(101); window.onload=function(){ document.body.innerHTML = ar.jo
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top