如何在同步Javascript中查找异步映像状态
我正在JS中加载图像,并等待其onload事件的状态。 我在HTML中包含了源代码中的JS文件,我想知道最初使用JS加载的图像的状态 例如:如何在同步Javascript中查找异步映像状态,javascript,image,asynchronous,callback,onload-event,Javascript,Image,Asynchronous,Callback,Onload Event,我正在JS中加载图像,并等待其onload事件的状态。 我在HTML中包含了源代码中的JS文件,我想知道最初使用JS加载的图像的状态 例如: var imgStatus=假; var img=新图像(); img.onload=函数(){ imgStatus=真; } img.src=”http://mydomains.com/someimage.jpg"; js1.js的代码是 window.onload=function(){ //检查imgStatus=true,然后只执行某些操作 /
var imgStatus=假;
var img=新图像();
img.onload=函数(){
imgStatus=真;
}
img.src=”http://mydomains.com/someimage.jpg";
js1.js的代码是
window.onload=function(){
//检查imgStatus=true,然后只执行某些操作
//在那之前什么也不做
}
我是否需要使用setInterval不断检查imgStatus的值,或者是否有其他更好的方法等待状态已知。最简单的方法是在imgStatus为真时触发事件,例如:
img.onload = function(){
imgStatus = true;
$(window).trigger("img/ready");
};
function doSomething(){
alert("image is ready");
};
window.onload = function(){
if (imgStatus)
doSomething();
else
$(window).bind("img/ready", doSomething);
}
这是一种可能性(从jQuery 1.8开始就被弃用)您不能将“new Image()”代码移到js1.js中吗?您在哪里/何时设置img的
src
-属性?@PrabuRaja不,根据我的要求,这是不可能的,因为在这种情况下,JS文件加载将需要额外的时间,然后我将不得不触发图像,这将导致额外的等待像素。在当前情况下,我的映像将异步加载,尽管image.onload在JS启动之前不会触发ready@MartinErnst我在HTML脚本标记本身中获取源代码。我希望在加载JS with source时图像已经准备好。虽然image.onload将被触发,窗口.onload将在资源(文档)及其相关资源(文件、图像等)完成加载后触发。因此,您只需在窗口中检查imgStatus
。onload
:如果存在真图像,则未找到假图像。在这两种情况下,加载过程都已完成。