【发布时间】:2010-12-19 17:28:55
【问题描述】:
我正在开发一个基于 jquery 的主页,其中包含 5 个左右隐藏的 div,每个 div 都包含几个背景 css 图像。
问题是浏览器在显示父层的可见性之前不会将 css 图像加载到 DOM 中,导致当该层变得可见时图像加载缓慢。
我已经考虑过的解决方案:
- CSS sprites(为此重新设计的工作量太大,并且在显示/隐藏 div 时不会真正起作用)
- This jQuery plugin 自动加载 CSS 背景图像(正如许多其他人所报告的那样,对我来说根本不起作用)。
-
通过js预加载图片:
$(function() { function preloadImg(image) { var img = new Image(); img.src = image; } preloadImg('/images/home/search_bg_selected.png'); });此解决方案似乎将图像加载到 dom 中两次...一次在 js 加载它时,然后在加载它的 div 层变得可见时再次...所以它进行了 2 个 HTTP 调用,因此无法正常工作。
我还没有解决此问题的任何其他解决方案吗?
【问题讨论】: