次の(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の呼び出しで出力されません。