如果我创建了一个图像标记而没有将其实际添加到DOM并向其添加源,它是否仍然获取图像并加载它。我的意思是当我将它附加到DOM时,我会立即看到图像吗?
更具体地说,我目前正在使用骨干网。因此,如果我创建了一堆骨干视图并将它们存储在一个数组中,每个都保存单个图像,即使我没有将它附加到DOM,也要渲染这些图像吗?当我将这些视图附加到DOM时。我会立即看到图像吗?
this.$el.append(view.render().el); // where view object was created before and stored in an array
这是一个很好的预取策略吗?内存限制怎么样?
答案 0 :(得分:5)
是的,这是用于加载背景图像的常用(并且不是很好)方案:将src添加到Image元素但不将其添加到DOM。浏览器加载它就像在DOM中一样。
在加载后将图像添加到DOM时,会立即渲染它们。
答案 1 :(得分:0)
即使您没有将图像元素添加到DOM树,它仍然使用document
对象创建,因此它属于该文档。您根本无法创建独立于文档的元素,因此,只要元素存在,浏览器就会请求图像。
但是,在视图的情况下,它将取决于您何时实际创建元素。如果render
方法创建了图像元素,则在您使用它之前它将不存在。