Szukałem, jak używać setTimeOut
dla pętli, ale nie ma zbyt wiele, jak używać go z pętlami, i nie widzę powodu, dla którego i tak powinna być duża różnica. Napisałem kilka odmian tego kodu, ale ta pętla wydaje się zawieszać przeglądarkę:setTimeout inside while loop
while(src == '')
{
(function(){
setTimeout(function(){
src = $('#currentImage').val();
$("#img_"+imgIdx).attr('src',src);
}, 500);
});
}
Dlaczego?
Zasadniczo mam obraz utworzony dynamicznie, którego atrybut źródłowy wymaga czasu, aby załadować, dlatego zanim będę mógł go wyświetlić, muszę sprawdzić, czy jest on załadowany czy nie, i tylko wtedy, gdy jego ścieżka jest dostępna w $('#currentImage')
, to pokażę to.
Ten kod przepracowanych grzywny przed użyłem pętli while, a kiedy bezpośrednio nie
setTimeout(function(){
src = $('#currentImage').val();
$("#img_"+imgIdx).attr('src',src);
}, 3000);
Ale nie chcę mieć, aby użytkownik odczekać 3 sekundy, jeśli ładowanie można zrobić szybciej, dlatego wstawiam setTimeOut
w pętlę while i zwinęłem jej interwał, tak że sprawdzam tylko załadowaną ścieżkę co pół sekundy. Co z tym jest nie tak?
Nie, settimeout przyjmuje funkcję jako parametr i wykonuje ją później. – jrdn
@jrdn Nie mówię o tym wewnątrz 'setTimeout', mówię o tym na zewnątrz. BTW, że deklaracja funkcji nie jest faktycznie potrzebna. –
Ah. To też. Więc tak, moja odpowiedź jest błędna. To zwykła stara nieskończona pętla! – jrdn