我们的网站上有一些跟踪像素,如果它们的服务器出现故障或变慢,我希望保护我们的用户体验。最简单的方法是指定浏览器尝试加载给定的图像的最长时间,例如尝试100毫秒后放弃。这样比跟踪某个客户更好,否则第三方服务器的故障会影响我们的网站。
我们的网站上有一些跟踪像素,如果它们的服务器出现故障或变慢,我希望保护我们的用户体验。最简单的方法是指定浏览器尝试加载给定的图像的最长时间,例如尝试100毫秒后放弃。这样比跟踪某个客户更好,否则第三方服务器的故障会影响我们的网站。
<img>
,并使用setTimeout()
在100毫秒后删除它。var tracker = $("<img>", { src: trackingUrl }).appendTo(document.body);
setTimeout(function() { tracker.remove(); }, 100);
当文档准备就绪时,您应该加载它们。或者在html的最后一行。这样-它不会影响用户体验。可以使用jQuery来准备文档。
但是您可以使用window.load。
通常(并非总是)-所有脚本都应位于页面末尾。
如果要强制超时KILL:
创建一个img
标签。
将load
事件附加到img上(此函数将设置标志:downloaded = 1;)
设置src。
使用setTimeout
函数来杀死img。
如何?
如果经过X毫秒后,downloaded == 0,则kill。
因此:每个从IMg加载的事件都会设置一个标志(downloaded = 1)。
您的超时函数不关心任何事情!!! X毫秒后,它将杀死img-仅当downloaded == 0时。
将 img.parentNode.removeChild(img)
视为
并非所有的 img
都有容器。
var img = new Image()
img.src = '...third-party server...'
setTimeout(function() {
img.removeAttribute('src')
}, 100)
<img>
而要费心去处理条件呢? - Electro<img>
的状态。 - Electro