Длинные циклы 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, время: 11:24. |