Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2010, 10:41   #1
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию JS. Можно ли растормозить долгий процесс

Всем доброго здравия. Есть некий скрипт где четыре вложенных цикла
Код:
		for(a=beg;a<=en;a++){ 	
			for(b=beg;b<=en;b++){
				for(c=beg;c<=en;c++){ for(d=beg;d<=en;d++){ fifth();	}}
			}
		}
вычисляют некую формулу. Далее по некому условию в функции fifth(); я вывожу в таблицу вычисленное. Так вот проблемы две словил:

1) Скрипт может долго выполнятся (иногда в зависимости от того что я введу как начальные значения он до 5000 строк мне рассчитает и выведет в таблицу). Но браузер время от времени выкатывает сообщение (я его приложу в виде картинки). Как заставить браузер всетки подождать пока скрипт закончит эти свои циклы?

2) Правда что в JS нельзя закинуть вычисления в отдельный поток, с таким рассчетом, чтоб добавляемая в таблицу строка (которая формируется при попадении в условие) сразу отрисовывалась на странице, при этом естесственно браузер не замерзал, пока все четыре цикла не пройдут.

Как вообще решаются такие проблемы в JS?

Заранее спасибо.

P.S. Если тема уже обсуждалась просьба дать ссылку.
Изображения
Тип файла: jpg Безымянный.JPG (31.6 Кб, 36 просмотров)
I'm learning to live...

Последний раз редактировалось Stilet; 29.11.2010 в 10:51.
Stilet вне форума Ответить с цитированием
Старый 29.11.2010, 11:37   #2
Alexei91
Заблокирован
Форумчанин
 
Аватар для Alexei91
 
Регистрация: 30.12.2009
Сообщений: 544
По умолчанию

http://webo.in/articles/habrahabr/13...ve-javascript/
- оптимизация «тяжелых» JavaScript-вычислений.
Ещё немного о JS - http://javascript.ru/tutorial/events/timing.
Темы для WordPress. Русские WordPress шаблоны
Alexei91 вне форума Ответить с цитированием
Старый 29.11.2010, 11:59   #3
XFree
Пользователь
 
Регистрация: 23.11.2010
Сообщений: 26
По умолчанию

Ответ довольно исчерпывающий. Добавлю просто, что в основном хватит метода setTimeout. Разделить процесс на порции и после выполнения каждой порции вызывать setTimeout - это даст другим процессам выполнить свои действия.
XFree вне форума Ответить с цитированием
Старый 29.11.2010, 13:24   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Угу. Спасибо. Даже скажу что setInterval подошел
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Долгий отклик от mdb-базы biohazardo БД в Delphi 5 07.10.2010 21:39
Как можно создать графический редактор где можно с помощю циркуля рисовать круг, а с линейки чертитьлинию Aksuubai Общие вопросы Delphi 3 03.06.2010 19:18
Процесс ryton Операционные системы общие вопросы 5 28.05.2008 18:14
Висит процесс, как его можно убрать? HAMMAN Помощь студентам 5 16.05.2008 08:55
RichEdit. как можно вставлять картинку туда? как можно Скрол програмно вниз двигать? Svop Компоненты Delphi 7 28.11.2006 21:07