如果我使用jQuery语法:$("<img src='img.jpg'>")
,图像是否会实际下载到客户端?或者我是否必须将其附加到身体才能下载?
答案 0 :(得分:6)
您不必将图像元素添加到文档中以便加载图像。
图像元素本身会在您创建图像后立即请求图像(并且只要它具有src
值)。
运行此操作时,请观察净活动(在Firebug /开发人员工具中):http://jsfiddle.net/Guffa/AvgVN/
Google "javascript preload"找到大量使用此代码的代码示例。
答案 1 :(得分:5)
是的,图像将立即下载。
即使已创建的Image
元素尚未在DOM中,但只要设置了.src
属性,您的浏览器仍会开始下载。
使用您自己的头像,我只是在控制台中执行此操作:
> i = $('<img src="http://graph.facebook.com/100002351317104/picture?type=large">');
...
> i[0].width
180
显示图像确实已加载。
如果您考虑一下,实际上必须是这种情况,否则图像预加载永远不会起作用。图像预加载取决于创建分离的Image
节点并设置其src
,这正是$("<img src=...>")
将要执行的操作。
答案 2 :(得分:2)
我会说是,或者可能取决于浏览器。
$("<img src='http://crssrd.com/web_apps/index/themes/crssrd.com/images/loading.gif'>")
在Chrome上进行测试,例如:http://jsfiddle.net/SMnhU/ 图像立即下载。