我有以下问题。我创建了一个类,在其构造函数中加载了一些图像,我需要延迟剩余的初始化操作直到它们完全加载完成。我使用的代码如下(摘自构造函数):
令我惊讶的是,当在Firefox 7中执行时,显示的对话框为4,4,4,4;而在IE 9中,则是4,3,2,4。我很困惑,因为我认为JS是单线程的,因此一个事件处理程序不应该打断另一个。这是什么原因(或我的错误)呢?
提前致谢。 最好的问候, Tomek
```
var self = this;
var imagesToLoad = 4;
var finishInit = function() {
alert(imagesToLoad);
imagesToLoad--;
if (imagesToLoad == 0) {
// remaining initializations
}
}
this._prevIcon = new Image();
this._prevIcon.onload = finishInit;
this._prevIcon.src = "img1.png";
this._nextIcon = new Image();
this._nextIcon.onload = finishInit;
this._nextIcon.src = "img2.png";
this._pauseIcon = new Image();
this._pauseIcon.onload = finishInit;
this._pauseIcon.src = "img3.png";
this._playIcon = new Image();
this._playIcon.onload = finishInit;
this._playIcon.src = "img4.png";
令我惊讶的是,当在Firefox 7中执行时,显示的对话框为4,4,4,4;而在IE 9中,则是4,3,2,4。我很困惑,因为我认为JS是单线程的,因此一个事件处理程序不应该打断另一个。这是什么原因(或我的错误)呢?
提前致谢。 最好的问候, Tomek