setTimeout внутри цикла while
Я искал, как использоватьsetTimeOut
с циклами for, но не очень много о том, как его использовать с циклами 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 и сократил его интервал, так что я проверяю только загруженный путь каждые полсекунды. Что в этом плохого?