我正在尝试使用JS加载图像并给它一定的时间加载。例如1秒。如果图像未在1秒内加载 - 请使用默认图像。这是我到目前为止所做的:
function displayUserImage() {
setTimeout(function(){
var imageMe = new Image();
imageMe.onload = function(){
$('#user-img-me').css('background-image', 'url(' + imageMe.src + ')');
};
imageMe.onerror = function() {
imageMe.src = "images/defaultImage.png";
}
if(!isEmpty(myObject.getPic()) && !isBlank(myObject.getPic())) {
imageMe.src = myObject.getPic();
}
else {
imageMe.src = "images/defaultImage.png";
}
}, 0);
}
我将timeOut设置为0只是为了使图像加载异步,而不是干扰其余代码的执行。 myObject.getPic()
返回带有图像路径的字符串。图像可以位于远程域/服务器上。连接可能很慢,图像可能很重,服务器可能没有响应...所以我想只给这个图像加载一秒钟,如果没有成功 - 使用默认图像。在这两种情况下,我需要在加载任一图像后将外部变量imageMeLoaded
设置为true。可以吗?