在我的网站上,我有一个facebook"点赞"按钮。。。但有时facebook没有响应(或非常慢),这会导致我页面的其他后续部分为空白,等待facebook最终做出响应。
我对我的网站的一些成员也有同样的问题,他们从自己的在线相册中链接照片——如果宿主网站反应缓慢或没有响应,就会暂停整个页面。
有没有办法在外部链接上设置计时器——例如,如果在2000毫秒内没有响应,那么跳过链接?
您可以在页面末尾设置2000毫秒的超时。在回调函数中,您将遍历所有链接的资源(通过使用getElementsBy*
查询文档或简单地遍历document.images
)并检查它们的状态。如果资源没有加载,您可以用Resource not available
之类的东西替换它,或者根据需要执行任何操作。
对于HTMLImageElement
的就绪性检查,有它的complete
布尔属性(HTML5),或者在IE中,有其readyState
数字属性。
window.setTimeout(function () {
var resources = document.images;
var resource, message;
for (var i = 0, ii = resources.length; i < ii; ++i) {
resource = resources[i];
if (typeof resource.complete !== 'undefined' && !resource.complete) {
message = document.createTextNode('Resource not available');
resource.parentNode.insertBefore(message, resource);
resource.parentNode.removeChild(resource);
}
}
}, 2000);