Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
Эксперт функциональных языков программированияЭксперт по математике/физике
4300 / 2091 / 431
Регистрация: 19.07.2009
Сообщений: 3,163
Записей в блоге: 24
1

Прерывание скрипта

10.09.2012, 20:29. Показов 2937. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Навеяно статьёй http://habrahabr.ru/post/151155/

Год назад я решил побаловаться с ген. алгоритмами, в качестве языка я необдуманно выбрал JS (а что, абстракция то позволяла и я, не имея конкретной фитнесс-функции, мог этим воспользоваться). В ответственный момент я осознал, что этап селекции, вообще говоря, склонен выполнятся долго, особенно если фитнесс функция тяжелая.

Тогда я решил сделать костыль, разбивая селекцию на цепь из последовательнох вызовов фитнесс функций, связанных setTimeout(<следующая особь>, 0) после вычисления фитнесс функции предыдущей особи. Я считал, что это костыль.

В связи с конкретным усложнением читаемости кода я решил написать несколько функций + объект, которые бы позволили писать в хаскелль-стиле, а именно: описывать действие как объект (по сути функция, замкнутая относительно всех аргументов, в т.ч. this), связывать действия между собою в одну цепочку последовательных действий, запускать эту цепочку, выполняя действия как функции, запуская между ними setTimeout.

Теперь вопрос знатокам:
Это вообще нормально использовать setTimeout для вот таких целей (разрыв тяжелой функции, чтоб не зависало)? Или есть более человечные и правильные способы?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.09.2012, 20:29
Ответы с готовыми решениями:

Прерывание функций в JavaScript
Здравствуйте!!!!! Подскажите пожалуйста, как прервать(остановить) работу функций через др функцию,...

Прерывание requestAnimationFrame при onwheel
Где раздел про vanilla js? Всем привет! Сделал ссылку &quot;Наверх&quot;: &lt;a href=&quot;#&quot;...

Как можно связать работу скрипта из балуна с работой скрипта на странице?
Первый раз задаю вопрос, извините если не в тот раздел. В общем, делаю метку через Яндекс карты...

Загрузка и выполнение скрипта из другого скрипта
Здравствуйте. У меня динамически скрипт формирует ссылку на которой лежит другой скрипт. Задача...

3
13208 / 6597 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
11.09.2012, 15:33 2
Цитата Сообщение от Mysterious Light Посмотреть сообщение
Это вообще нормально использовать setTimeout для вот таких целей (разрыв тяжелой функции, чтоб не зависало)?
По меньше мере, имхо, это даёт право думать: «Ну я же сделал всё, что от меня зависит. Если всё равно тормозит, значит у Вас комп/браузер медленный.»

А если серьёзно, то, да, действительно, прерывистые операции из очереди таймаутов будут давать возможность выполниться, например, обработчикам событий. Да и сами браузеры тоже по-разному себя ведут при длительном выполнении сплошного скрипта.
1
Эксперт функциональных языков программированияЭксперт по математике/физике
4300 / 2091 / 431
Регистрация: 19.07.2009
Сообщений: 3,163
Записей в блоге: 24
12.09.2012, 01:11  [ТС] 3
Вы правы.

С одной стороны, конечно, огорчает меня тот факт, что ариори программа, написанная на нативном языке (C, например) под ОС, выполняется быстрее, чем программа, написанная на более абстрактном языке (Java или Javascript, например) под некоторый интерпретатор (JVM или browser, соответственно, или другой какой-то исполнитель).

Бывает, я пишу некоторый перебор для своих нужд без особой оптимизации и программа выполняется меньше 20 часов. Известные мне браузеры не позволяют исполнять скрипт более 10 минут. Конечно, можно сказать, что это не нужная задача: либо менять язык и среду на сходную, либо не пудрить мозги. Но всё же...

В комментах к приведенной статье появилась ссылка на http://nin-jin.github.com/arti... er.doc.xml, вроде решающее эту проблему. Ограничения: только ФФ и Хром. Читаю эту статью, может там и ответ будет дан.
0
834 / 642 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
25.08.2013, 00:17 4
Мне кажется, для вычислительных целей больше подходит серверный джаваскрипт, например node.js.
Точно не знаю, но вроде там нет ограничения на время исполнения.
0
25.08.2013, 00:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.08.2013, 00:17
Помогаю со студенческими работами здесь

Прерывание перехода по ссылке внутри функции
Доброго времени суток! Подскажите, как прервать переход по ссылке. Знаю о следующем варианте:...

Прерывание :hover при перезагрузки части страницы
есть div элемент, который обновляется каждые 15 сек вот так: $(function() {...

Внезапное прерывание скрипта
Собственно, есть скрипт, отсылающий каждую итерацию цикла POST запрос. На локальном денвере...

Утилита sqlcmd - прерывание выполнения скрипта после первой ошибки
Требуется через утилиту sqlcmd сделать так, чтобы выполнение скрипта прерывалось при первой ошибке:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru