我有以下(javascript/jquery)代码在加载图像时显示繁忙指示器(延迟后):
function imgUpdate(arg) {
var loaded = false;
$("#image").one("load", function(){
loaded = true;
$("#busyIndicator").hide();
});
setTimeout(function(){
if (!loaded) {
$("#busyIndicator").show();
}
}, 250);
$("#image")[0].src = arg;
}
有时,指标会出现并保持不变。如果浏览器的 javascript 引擎是单线程的,这怎么可能?(顺便说一下,这是在 Firefox 3 上。)
注意:这似乎发生在正在加载的图像已经缓存时。
另一个注意事项:如果我登录到我的 firebug 控制台,imgUpdate 中的所有行都会执行,但 onload 处理程序中的日志消息永远不会在后续调用 imgUpdate 时打印。