<img src=""/> w /超时?

时间:2012-05-01 15:25:30

标签: javascript html image

我的网站上有一些跟踪像素,如果他们的服务器停机或运行缓慢,我希望防止它们影响我们的用户体验。指定浏览器应该尝试加载给定img的最长时间的最简单方法是什么 - 即尝试100ms然后放弃? (我宁愿不跟踪给定客户而不是让第三方服务器上的服务器挂起影响我们的网站。)

5 个答案:

答案 0 :(得分:3)

您可以使用JavaScript插入<img>,并在100分钟后使用setTimeout()将其删除。

jQuery示例:

var tracker = $("<img>", { src: trackingUrl }).appendTo(document.body);
setTimeout(function() { tracker.remove(); }, 100);

答案 1 :(得分:2)

您应该在文档准备好后加载它们。 或者在最后一行(在HTML中)。这样 - 它不会伤害用户体验。 document ready也可以和jQuery一起使用。

但你可以使用window.load。

作为规则(并非总是) - 所有脚本都应位于页面的末尾。

  

如果你想FORCE超时KILL:

创建img标记。

load事件附加到img(此函数将设置标志:已下载= 1;)

设置src。

setTimeout功能你将杀死img。

怎么样?

如果在X MS之后下载== 0则杀死。

所以:每个加载事件(来自IMg)都设置一个标志(下载= 1)。

你的超时功能不关心什么!在x MS之后,她将杀死img - 只有在下载的== 0。

答案 2 :(得分:0)

您必须使用javascript来执行此操作,HTML / HTTP本身没有任何原生内容可以在页面基础上执行此操作。谷歌周围的“HTML IMG超时”。

答案 3 :(得分:0)

img.parentNode.removeChild(img)

并非所有img都有容器。

var img = new Image()
img.src = '...third-party server...'
setTimeout(function() {
  img.removeAttribute('src')
}, 100)

答案 4 :(得分:-1)

您可以在IMG标记中调用服务器进程。让它担心超时负载。