首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >document.createElement('img') v/s新图像()?哪一个要附加到DOM中?

document.createElement('img') v/s新图像()?哪一个要附加到DOM中?
EN

Stack Overflow用户
提问于 2015-08-03 06:51:04
回答 1查看 3.3K关注 0票数 1

因此,我的问题是(与讨论过的here不同:在移动广告中,我会得到印象跟踪器,可能是2、3或4。由于网络带宽有限,我想同时发射所有可用的跟踪器,而不是瀑布式的跟踪器(请不要问我为什么)。

我们一直在使用这样的代码:

代码语言:javascript
运行
复制
<script type="text/javascript"> 
var imp_1 = document.createElement("img"); 
imp_1.src = "tracker url 1 here"; 
var imp_2 = document.createElement("img"); 
imp_2.src = "tracker url 2 here"; 
var imp_3 = document.createElement("img"); 
imp_3.src = "tracker url 3 here"; 
var imp_4 = document.createElement("img"); 
imp_4.src = "tracker url 4 here"; 
</script>

更新所有这些1x1印象跟踪器将指向不同的服务器,因为它们来自不同的属性伙伴。

我的问题是:

  1. 是否总是需要添加上述创建调用,以便将img变量添加到DOM?在所有情况下,这是一个很好的实践吗?
  2. document.body.appendChild()总是能做到这一点吗?
  3. 如果我用new Image()代替document.createElement(),那么这里的工作方式会有所不同吗?我正致力于对每个跟踪器设置一个setTimeout(),以同时发射它们,但是new Image()能够自己做到这一点吗?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-03 06:54:39

是否总是需要将上述创造性的img添加到DOM中?在所有情况下,这是一个很好的实践吗?

您不必向DOM中添加图像。但是,如果您希望它在页面中是可见的,那么它将以某种方式出现在DOM中,因为将它添加到DOM是如何显示它的。图像可能不会被添加到DOM中的一个常见情况是在对图像进行加密时(导致浏览器下载图像,以便它在以后需要时已经在缓存中)。

document.body.appendChild()总是能做到这一点吗?

document.body.appendChild(img)将把图像添加到DOM的<body>部分的末尾。它永远都会这么做。但是,通常情况下,这并不是您想要在DOM中的图像的确切位置,所以可能需要一些其他代码来定位其他位置。

如果我用新图像()代替document.createElement(),那么这里的效果会有所不同吗?我正在对每个跟踪器设置一个setTimeout(),以同时触发它们,但是new ()能够单独完成吗?

您可以使用new Image()document.createElement("img")。这两种方法都会创建一个图像对象。我不清楚你对setTimeout()的引用是什么。图像标记没有任何内置的定时功能。如果您希望在将来的某个特定时间加载一个映像,您可能希望使用一个setTimeout()调用来将该事件调度到将来的特定时间。

您不能控制浏览器是否同时请求N个图像,或者它现在是否获得其中的一些图像,以及在第几个图像完成后获得其中的一些图像。浏览器通常有每个来源的连接限制,并且它们只会一次触发那么多的连接到相同的来源。当随后的请求在达到限制后出现时,它们将排队,直到一些当前打开的请求完成为止。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31781046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档