最近发现的Web项目在IE6下出现背景图片不缓存的问题,在网上搜索了一番,发现已经是众所周知的BUG,这里就总结一下各种解决办法
解决方法一:IE6 Hack脚本 
复制代码 代码如下:
 
<script> 
if(navigator.appName == "Microsoft Internet Explorer"){ 
var b_version=navigator.appVersion; 
var version=b_version.split(";"); 
var trim_Version=version[1].replace(/[ ]/g,""); 
if(trim_Version=="MSIE6.0"){ 
;//alert("IE 6.0"); 
try { 
document.execCommand("BackgroundImageCache", false, fix); 
}catch(err){ } 
} 
} 
</script> 
解决方法二:IE6 Hack注释
复制代码 代码如下:
 
<!--[if IE 6]> 
<script type="text/javascript"><!-- 
document.execCommand("BackgroundImageCache", false, true); 
// --></script> 
<![endif]--> 
解决方案三:IE6 Hack样式
复制代码 代码如下:
 
html {} 
{ 
filter:expression(document.execCommand("BackgroundImageCache", false, true)); 
} 
但以上方法还不能解决在innerHTML使用图片不缓存的问题,此问题的微软官方解释参考:?scid=kb;en-us;319546
解决了背景图片缓存的问题,Web图片的使用就可以采用CSS的background-image进行定义,且采用缓存只访问一次。对于IMG标签,部分网站采用(宽高均为)1像素的GIF图片作为SRC值,表示内容采用样式类定义的方式如:
复制代码 代码如下:
 
.yahoo 
{ 
background: url('img/yahoo.png') no-repeat; 
width:16px; 
height:16px; 
} 
<img src="https://www.jb51.net/pixel.gif"/>
Web应用中使用图片需要考虑问题,就是图片的请求次数、图片的尺寸和图片的清晰度。
