setTimeOut
をforループで使用する方法を検索しましたが、Whileループで使用する方法はあまりありません。なぜ、どうして大きな違いがあるのかわかりません。私は次のコードのいくつかのバリエーションを書いていますが、このループはブラウザをクラッシュさせるようです:setTimeout inside whileループ
while(src == '')
{
(function(){
setTimeout(function(){
src = $('#currentImage').val();
$("#img_"+imgIdx).attr('src',src);
}, 500);
});
}
なぜですか?
基本的には、ソース属性に時間がかかるので、表示する前に、ロードされているかどうか、そしてそのパスが$('#currentImage')
で利用できるときだけチェックしなければなりません。私はそれを表示するのですか?
、私はwhileループを使用する前にこのコードはうまく働いた、と私は直接
setTimeout(function(){
src = $('#currentImage').val();
$("#img_"+imgIdx).attr('src',src);
}, 3000);
をしたとき、しかし、私はロードが速く行われる可能性がある場合、ユーザは3秒を待つようする必要がありますする必要はありませんしたがって私はsetTimeOut
をwhileループに入れ、間隔を短くして、ロードされたパスを半分ごとにチェックするだけです。それのどこが悪いんだい?
いいえ、settimeoutはこの関数をパラメータとして受け取り、後で実行します。 – jrdn
@jrdn私は 'setTimeout'の中にあるものについて話しているわけではありません。私は外部のものについて話しています。実際には関数宣言は必要ありません。 –
ああ。それも。そうです、私の答えは間違っています。それは単なる無限の無限ループです! – jrdn