国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

IE 緩存策略的BUG的解決方法

2019-11-21 02:00:18
字體:
來源:轉載
供稿:網友
今天是發現bug的高產期。

IE在解析innerHTML的時候居然會忽略Cache策略,簡單的重復加載圖片。請看以下代碼:

<HTML>
<HEAD>
<BODY>
<SCRIPT LANGUAGE="JavaScript">
<!--
var st="<img src=/"http://imgcache.qq.com/qzone/item/orig/11/3179_5.gif/">"
var ar = new Array(101);
window.onload=function(){
    document.body.innerHTML = ar.join(st);
}
//-->
</SCRIPT>
</BODY>
</HTML>

保存到本地作為一個htm文件,然后用IE打開(允許腳本運行),然后用http監視工具可以看到,IE發起了100個請求,一個都不cache!

在FireFox下面就沒有問題,只發起一個請求。
復制代碼 代碼如下:

用這段代碼可以解決這個問題 

<html> 
<head> 
<script language=javaScript> 
var imageholder=new Image() 
imageholder.src="http://imgcache.qq.com/qzone/item/orig/11/3179_5.gif" 
</script> 
</head> 
<body> 
<div id="div1"></div> 
<script language=javaScript> 
document.getElementById("div1").innerHTML = 
"<img id='p1'><img id='p2'><img id='p3'>"; 
document.getElementById("p1").src=imageholder.src; 
document.getElementById("p2").src=imageholder.src; 
document.getElementById("p3").src=imageholder.src; 
</script> 
</body> 
</html> 

復制代碼 代碼如下:

這個bug的官方描述見: 

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

此外 http://www.bazon.net/mishoo/Articles/msie/958/ 指出background-image會帶來一樣的問題。 

ms的官方解決方案是象這樣: 

<HTML> 
<HEAD> 
<BODY> 

<SCRIPT LANGUAGE="JavaScript"> 
<!-- 
var st="<img src=/"http://imgcache.qq.com/qzone/item/orig/11/3179_5.gif">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); 
//--> 
</SCRIPT> 
<div id="d"><img src="http://imgcache.qq.com/qzone/item/orig/11/3179_5.gif">http://imgcache.qq.com/qzone/item/orig/11/3179_5.gif"></div> 
</BODY> 
</HTML> 

如果不怕麻煩的話,這樣做可以更快一點點,也更保險: 

<HTML> 
<HEAD> 
<BODY> 
<SCRIPT LANGUAGE="JavaScript"> 
<!-- 
var st="<img src=/"http://imgcache.qq.com/qzone/item/orig/11/3179_5.gif">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"; 

//--> 
</SCRIPT> 
<div id="d"><img src="http://imgcache.qq.com/qzone/item/orig/11/3179_5.gif">http://imgcache.qq.com/qzone/item/orig/11/3179_5.gif" onreadystatechange="if(readyState=='complete')setTimeout('test()',0)"></div> 
</BODY> 
</HTML> 

更多方法:
http://www.blogjava.net/emu/archive/2006/03/01/33082.html
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 襄汾县| 宁化县| 抚顺县| 平昌县| 华亭县| 泰兴市| 临沂市| 永康市| 松桃| 石门县| 获嘉县| 济阳县| 潼南县| 龙州县| 神木县| 上栗县| 永川市| 盐源县| 襄汾县| 中西区| 手游| 长岛县| 博爱县| 亚东县| 嘉鱼县| 阿合奇县| 乌鲁木齐县| 河东区| 仁布县| 盖州市| 凤翔县| 吉水县| 沙雅县| 武平县| 松潘县| 合阳县| 旬阳县| 阿荣旗| 镇赉县| 曲麻莱县| 弥渡县|