IE6下CSS背景圖片閃爍的Bug(ie6下的背景圖片緩存問(wèn)題)
IE6下的背景圖片每次使用都會(huì)重新發(fā)送請(qǐng)求(非本地),連一個(gè)hover效果時(shí)候同樣的背景圖片僅僅位置不同而已,ie6都會(huì)再次發(fā)送請(qǐng)求,這個(gè)令人崩潰的事情需要解決掉:
對(duì)于ie來(lái)說(shuō),filter:expression 很強(qiáng)大,能夠?qū)崿F(xiàn)的功能超級(jí)多,但是更對(duì)于視效率如生命的程序員來(lái)說(shuō),它的效率不敢令人恭維,所以有人會(huì)用css方法實(shí)現(xiàn)ie6下背景圖片緩存,但是這種人也就是崇拜微軟的強(qiáng)大而已:
html {filter:expression(document.execCommand("BackgroundImageCache", false, true));} 當(dāng)然缺點(diǎn):可能會(huì)使整個(gè)頁(yè)面的加載速度變慢
大多數(shù)人都會(huì)選擇js方法實(shí)現(xiàn):
<script type='text/javascript'>
document.execCommand("BackgroundImageCache", false, true);
</script>
缺點(diǎn):如果在firefox等瀏覽器下執(zhí)行會(huì)出錯(cuò)。
所以需要判斷是否為IE瀏覽器,使用jQuery提供的判斷方法如下:
<script type='text/javascript'>
if ($.browser.msie) {
document.execCommand("BackgroundImageCache", false, true);
}
</script>
更簡(jiǎn)單的就是使用IE的條件注釋:
<!--[if lt IE 7]>
<script>document.execCommand("BackgroundImageCache",false,true);</script>
<![endif]-->