Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.11.2011, 18:57
Интересующийся
Отправить личное сообщение для diprom Посмотреть профиль Найти все сообщения от diprom
 
Регистрация: 21.05.2011
Сообщений: 24

Длинные циклы javascript
Здравствуйте.
Скажите, написав банальную функцию
function a()
{
for i =0; i < 1000000; i++)
//что-то делаем
}
Internet Explorer начинает говорить, что страница не отвечает и через
какое-то время заканчивает ее обработку. Что добавить в этой функции, чтобы, как пример deplhi application.processmessages() обрабатывалось здесь и цикл не зависал в internet explorer?
Ответить с цитированием
  #2 (permalink)  
Старый 22.11.2011, 19:30
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

сделать этот цикл с паузами (таймаутами)

правда это существенно увеличит время выполнения
Ответить с цитированием
  #3 (permalink)  
Старый 22.11.2011, 22:15
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

melky, да не особо. Пять-десять тысяч проходов любой браузер вполне выдержит (если, конечно, он там не числа фиббоначи больше тысячи вычисляет ). И двести раз прогнать таймаут... Ничего серьёзного))
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #4 (permalink)  
Старый 22.11.2011, 22:19
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от diprom Посмотреть сообщение
Скажите, написав банальную функцию
function a()
{
for i =0; i < 1000000; i++)
//что-то делаем
}

Сообщение от trikadin Посмотреть сообщение
И двести раз прогнать таймаут... Ничего серьёзного))
не пахнет двумя стами

может на 5 секунд задержися.. а может и на часок.. он то код в IE исполняет
Ответить с цитированием
  #5 (permalink)  
Старый 22.11.2011, 22:44
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Сообщение от melky
не пахнет двумя стами
Если по 5к итераций в цикле - то ими пахнет.

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)
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Книга] Stoyan Stefanov, Javascript Patterns Dmitry A. Soshnikov Учебные материалы 20 13.08.2013 10:37
Первый Moscow JavaScript Meetup korenyushkin Общие вопросы Javascript 0 26.07.2011 14:23
javascript вставки в vrml сцены. Передать событие из броузера Proletariy Javascript под браузер 0 10.05.2011 11:26
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 18:40
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 19:34