Длинные циклы javascript
Здравствуйте.
Скажите, написав банальную функцию function a() { for i =0; i < 1000000; i++) //что-то делаем } Internet Explorer начинает говорить, что страница не отвечает и через какое-то время заканчивает ее обработку. Что добавить в этой функции, чтобы, как пример deplhi application.processmessages() обрабатывалось здесь и цикл не зависал в internet explorer? |
сделать этот цикл с паузами (таймаутами)
правда это существенно увеличит время выполнения |
melky, да не особо. Пять-десять тысяч проходов любой браузер вполне выдержит (если, конечно, он там не числа фиббоначи больше тысячи вычисляет :D). И двести раз прогнать таймаут... Ничего серьёзного))
|
Цитата:
Цитата:
может на 5 секунд задержися.. а может и на часок.. он то код в IE исполняет ;) |
Цитата:
var str="bla-bla"; time= +(new Date()), j=0; var interv= setInterval(function(){ for (var i=0; i!=5000; ++i){ str= str.replace(/bla/g, "hren");// нормальный образец проводимых изменений. str= "bla-bla"; }; if(++j == 200) { clearInterval(interv); alert(+(new Date()) - time); // у меня - 927, меньше секунды }; }, 0) |
Часовой пояс GMT +3, время: 06:01. |