Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как прекратить выполнение скрипта ? (https://javascript.ru/forum/misc/39120-kak-prekratit-vypolnenie-skripta.html)

macdack 16.06.2013 23:07

Как прекратить выполнение скрипта ?
 
при нажатии на кнопку программа запускает скрипт eval(x)
в переменной х набор инструкций бесконечного цикла с периодической проверкой состояния (чтобы JS не завис) и отображением состояния в окне

итак - в моем окне ворочается цикл и мигает
как его остановить и чтобы из памяти стереть все упоминания об этом цикле

как часть кода удалить из памяти, не прекращая работу остального ?
остановить и удалить программно, директивой из основной программы

nerv_ 17.06.2013 02:48

Цитата:

Сообщение от macdack
как его остановить

try {
    eval( 'throw {code:111}' );
} catch( e ) {
    alert( e.code );
}

http://javascript.ru/throw

Цитата:

Сообщение от macdack
и чтобы из памяти стереть все упоминания об этом цикле

задействовать сборщик мусора

macdack 17.06.2013 09:55

не понял ничо

nerv_ 17.06.2013 14:12

что-то я перемудрил на ночь глядя. Остановить цикл:
break;

macdack 17.06.2013 14:33

человек, ты пойми что программа (кусок программы который я эвалом запускаю) это не только цикл но и всё что угодно

пока что вижу решение такое - во всех обработчиках события. во всех условиях и циклах, и во всех блоках инструкций ставить проверку на выполнимость...

macdack 17.06.2013 14:49

ну например

основная программа загружает (eval) по команде пользователя дополнительные скрипты.
скриптов много и все они по разному используют одни и те же события мыши или клавы
то есть одну прогу надо выключить для того чтобы другая заработала

ну или каждый загружаемый скрипт крутит цикл бесконечный и мигает на экране обозначая свою активность и совершая какие то действия например с бд

надо включать-выключать функциональные части программы

danik.js 18.06.2013 03:35

macdack, открою страшную тайну - JavaScript - однопоточный. Мне жаль чувак..
Хотя.. может тебе вебворкеры помогут?

macdack 18.06.2013 10:32

человек, ты понимаеш разницу между управлением памятью и многопоточностью ?


?как действующие элементы программы работающей удалить из оперативной памяти - функции и переменные

tsigel 18.06.2013 10:47

если проблема в том чтобы выключать некий функционал на время работы других скриптов, то на это есть bind и unbind.

macdack 18.06.2013 10:55

Цитата:

Сообщение от tsigel (Сообщение 256936)
если проблема в том чтобы выключать некий функционал на время работы других скриптов, то на это есть bind и unbind.

ты читать чумеешь вопросы ?

я про жаваскрипт спрашиваю и не только про обработчики событий


Часовой пояс GMT +3, время: 06:16.