css - 使用 <img> 标签加速 CSS 背景图像加载时间的优缺点

标签 css image background sprite preloading

一般情况下,我大量使用 CSS Sprite 和背景图像 - 全部通过 CSS。

现在,使用 Firebug 的网络面板,我看到这些 CSS 背景图像的加载仅在执行以下步骤后才开始:

1) HTML文档的加载和解析

2) 加载CSS文件

看起来像这样:http://www.umdiewelt.de/tmp/network_withoutIMG.JPG

所以我加入了以下内容以查看会发生什么:

<img src="http://cdn.umdiewelt.de/images/layout/c_bgBody.jpg" style="display:none" />
<img src="http://cdn.umdiewelt.de/images/layout/c_bgHeader.jpg" style="display:none" />
<img src="http://cdn.umdiewelt.de/images/c_miscSpriteScreenBasic.png" style="display:none" />

请注意,图像设置为显示:无。

现在这些下载开始得更早:http://www.umdiewelt.de/tmp/network_withIMG.JPG

这是良好的编码习惯还是垃圾?这当然是未使用的 HTML 的开销,但它是预加载 CSS Sprite 的有效方法吗?

最佳答案

本文指出了一些预加载图像的有效方法,其中我将使用第二种方法的第一种变体。

http://perishablepress.com/3-ways-preload-images-css-javascript-ajax/

在您的情况下,您可以使用它(根据文章中的示例进行修改以适应用例)

<div class="hidden">
    <script type="text/javascript">
        <!--//--><![CDATA[//><!--
            var images = new Array()
            function preload() {
                for (i = 0; i < preload.arguments.length; i++) {
                    images[i] = new Image()
                    images[i].src = preload.arguments[i]
                }
            }
            preload(
                "http://cdn.umdiewelt.de/images/layout/c_bgBody.jpg",
                "http://cdn.umdiewelt.de/images/layout/c_bgHeader.jpg",
                "http://cdn.umdiewelt.de/images/c_miscSpriteScreenBasic.png"
            )
        //--><!]]>
    </script>
</div>

关于css - 使用 <img> 标签加速 CSS 背景图像加载时间的优缺点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22978136/

相关文章:

html - 在暗模式下控制 Gmail 中的颜色交换

javascript - 制作图像面向运动方向html

python - 如何在具有指定错误概率的图像中添加合成噪声

Android SurfaceView 在视频后显示图像(清晰表面)

css - 缩放背景图像以使用居中和纵横比填充浏览器窗口

CSS 问题 - 包装

javascript - 将水平图像放入 HTML 脚本中

javascript - jquery中暂停和播放按钮的定位

html - CSS3 动画 : blinking overlay box

css - 中间的单选按钮,两侧各有两列文本/选项