栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用JavaScript / jQuery预加载图像的最佳方法?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用JavaScript / jQuery预加载图像的最佳方法?

不幸的是,这取决于您的目的。如果您打算将图像用于样式目的,则最好的选择是使用精灵。

但是,如果您打算使用

<img>
标记中的图像,则需要使用

function preload(sources){  var images = [];  for (i = 0, length = sources.length; i < length; ++i) {    images[i] = new Image();    images[i].src = sources[i];  }}

使用

newImage()
不涉及使用DOM方法的开销,但是对指定图像的新请求将添加到队列中。由于图像目前尚未真正添加到页面,因此不涉及重新渲染。但是,我建议将其添加到页面的末尾(所有脚本应尽可能添加),以防止其占用更多关键元素。

编辑:编辑以正确反映评论,指出

Image
需要单独的对象才能正常工作。谢谢,我很遗憾没有更仔细地检查它。

Edit2:编辑以使可重用性更加明显

编辑3(3年后):

由于浏览器处理不可见图像的方式发生了变化(display:none或在此答案中从未附加到文档中),因此首选新的预加载方法。

您可以使用Ajax请求来强制早期检索图像。例如,使用jQuery:

jQuery.get(source);

或者在前面的示例中,您可以执行以下操作:

function preload(sources){  jQuery.each(sources, function(i,source) { jQuery.get(source); });}

请注意,这不适用于按原样运行的精灵。这仅适用于带有图片的照片画廊或滑块/转盘,这些图片由于最初不可见而无法加载。

另请注意,此方法不适用于IE(通常不使用ajax来检索图像数据)。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/420721.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号