gpt4 book ai didi

javascript - document.createElement ('img' ) v/s new Image()?哪一个要附加到 DOM?

转载 作者:行者123 更新时间:2023-11-30 16:42:13 26 4
gpt4 key购买 nike

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

我们一直在使用这段代码:

<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() 是否能够自行完成?

最佳答案

Is it always required to add the above creative img vars to the DOM? Is it a good practice do so in all scenarios?

您不必向 DOM 添加图像。但是,如果您希望它在页面中可见,那么它必须以某种方式位于 DOM 中,因为将它添加到 DOM 就是它的显示方式。图像可能未添加到 DOM 的一种常见情况是在预缓存图像时(导致浏览器下载图像,以便在以后需要时它已经在缓存中)。

Would document.body.appendChild() always do the trick?

document.body.appendChild(img)会将图像添加到 <body> 的末尾DOM 的一部分。它会一直这样做。但是,通常这并不是您想要图像在 DOM 中的确切位置,因此可能需要一些其他代码来定位其他位置。

If I instead used new Image() in place of the document.createElement() would that work differently here? I was working on putting a setTimeout() against each of the trackers, to fire them simultaneously, but would new Image() would be able to do that by itself?

您可以使用 new Image()document.createElement("img") .两者都将创建一个相同的图像对象。我不清楚你对 setTimeout() 的引用是什么是关于。图像标签没有任何内置的计时功能。如果你想在未来的某个特定时间加载图像,你可能想要使用 setTimeout()调用以在未来的特定时间安排该事件。

您无法控制浏览器是同时请求 N 个图像,还是现在获取其中一些图像,以及在前几张图像完成后获取其中一些图像。浏览器通常对每个来源都有连接限制,并且它们只会同时触发这么多连接到同一来源。当后续请求在达到限制后进入时,它们会排队,直到一些当前打开的请求完成。

关于javascript - document.createElement ('img' ) v/s new Image()?哪一个要附加到 DOM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31781046/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com