如何在同步Javascript中查找异步映像状态

如何在同步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,然后只执行某些操作 /

我正在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,然后只执行某些操作
//在那之前什么也不做
}


我是否需要使用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
:如果存在真图像,则未找到假图像。在这两种情况下,加载过程都已完成。