5

如果我使用 jQuery 语法 : $("<img src='img.jpg'>"),图像实际上会下载到客户端吗?还是我必须将其附加到正文才能下载?

4

3 回答 3

6

您不必将图像元素添加到要加载的图像的文档中。

图像元素本身将在您创建图像后立即请求图像(并且一旦它具有src值)。

运行此命令时观看网络活动(在 Firebug/Developer Tools 中):http: //jsfiddle.net/Guffa/AvgVN/

谷歌“javascript preload”可以找到大量使用它的代码示例。

于 2012-11-03T09:55:49.490 回答
5

是的,图像将立即下载。

即使Image已创建的元素尚未在 DOM 中,您的浏览器仍会在.src设置属性后立即开始下载它。

使用您自己的头像,我只是在控制台中执行此操作:

> i = $('<img src="http://graph.facebook.com/100002351317104/picture?type=large">');
...
> i[0].width
180

显示图像确实已加载。

如果您考虑一下,实际上必须是这种情况,否则图像预加载将永远无法工作。图像预加载取决于创建分离Image节点并设置其src,这正是$("<img src=...>")要做的。

于 2012-11-03T09:56:16.617 回答
2

我会说是的,或者可能取决于浏览器。

$("<img src='http://crssrd.com/web_apps/index/themes/crssrd.com/images/loading.gif'>")​

例如,在 Chrome 上测试:http: //jsfiddle.net/SMnhU/ 图像会立即下载。

于 2012-11-03T09:57:53.310 回答