1. 首先CSS背景图重复加载有解决方案,大家都知道。
解决方案:
if (IE6) { try { document.execCommand("BackgroundImageCache", false, true); } catch(err) {} }
2. 通过JavaScript代码插入多个SRC相同的IMG元素。
解决方案:
<script> window.onload = function() { var div = document.getElementById('J_test'); var html = [ '<img src="space.gif" />', '<img src="space.gif" />', '<img src="space.gif" />', '<img src="space.gif" />'].join(''); // 延迟插入HTML setTimeout(function() { div.innerHTML = html; }, 0); }; </script> <div id="J_test"></div> <!-- 预先加载space.gif --> <div style="display:none;"><img src="space.gif" /></div>
备注: 在jQuery.raedy里延迟0s会无效,必须等到space.gif加载完后延迟0s才有效果。
参考文档:
- http://ued.taobao.com/blog/2010/05/17/ie6-duplicate-load-bug/
- http://www.zachleat.com/web/dear-ie6-please-cache-my-images/
- http://support.microsoft.com/default.aspx?scid=kb;en-us;319546