0

如果我创建一个图像标签而不实际将其添加到 DOM 并向其添加源代码,它仍然会获取图像并加载它。我的意思是当我将它附加到 DOM 时,我是否会立即看到图像而没有任何延迟?

更具体地说,我目前正在与骨干合作。因此,如果我创建一堆主干视图并将它们存储在一个数组中,每个都包含单独的图像,即使我不将其附加到 DOM,这些图像是否会呈现?当我将这些视图附加到 DOM 时。我是否可以立即看到图像而不会有任何延迟?

this.$el.append(view.render().el); // where view object was created before and stored in an array

这是一个好的预取策略吗?内存限制呢?

4

2 回答 2

5

是的,这是加载背景图像的一种常见(而且不是很好)方案:您将 src 添加到 Image 元素,但不将其添加到 DOM。浏览器加载它就像它在 DOM 中一样。

当您在加载图像后将它们添加到 DOM 时,它们会立即被渲染。

于 2013-04-12T19:55:31.490 回答
0

即使您不将图像元素添加到 DOM 树中,它仍然是使用document对象创建的,因此它属于该文档。您根本无法创建独立于文档而存在的元素,因此一旦元素存在,浏览器就会请求图像。

但是,在视图的情况下,这取决于您实际创建元素的时间。如果该render方法创建了图像元素,那么直到您使用它之前它才会存在。

于 2013-04-12T20:09:51.753 回答