Как прекратить выполнение скрипта ?
при нажатии на кнопку программа запускает скрипт eval(x)
в переменной х набор инструкций бесконечного цикла с периодической проверкой состояния (чтобы JS не завис) и отображением состояния в окне итак - в моем окне ворочается цикл и мигает как его остановить и чтобы из памяти стереть все упоминания об этом цикле как часть кода удалить из памяти, не прекращая работу остального ? остановить и удалить программно, директивой из основной программы |
Цитата:
try { eval( 'throw {code:111}' ); } catch( e ) { alert( e.code ); } http://javascript.ru/throw Цитата:
|
не понял ничо
|
что-то я перемудрил на ночь глядя. Остановить цикл:
break; |
человек, ты пойми что программа (кусок программы который я эвалом запускаю) это не только цикл но и всё что угодно
пока что вижу решение такое - во всех обработчиках события. во всех условиях и циклах, и во всех блоках инструкций ставить проверку на выполнимость... |
ну например
основная программа загружает (eval) по команде пользователя дополнительные скрипты. скриптов много и все они по разному используют одни и те же события мыши или клавы то есть одну прогу надо выключить для того чтобы другая заработала ну или каждый загружаемый скрипт крутит цикл бесконечный и мигает на экране обозначая свою активность и совершая какие то действия например с бд надо включать-выключать функциональные части программы |
macdack, открою страшную тайну - JavaScript - однопоточный. Мне жаль чувак..
Хотя.. может тебе вебворкеры помогут? |
человек, ты понимаеш разницу между управлением памятью и многопоточностью ?
?как действующие элементы программы работающей удалить из оперативной памяти - функции и переменные |
если проблема в том чтобы выключать некий функционал на время работы других скриптов, то на это есть bind и unbind.
|
Цитата:
я про жаваскрипт спрашиваю и не только про обработчики событий |
Цитата:
Вот, допустим у объектов появится метод release() (или как он обычно называется), что позволит тебе стереть его из памяти принудительно. Дальше что? |
вот хорошая алегория -
допустим окно документа и скрипт его это некое подобие операционной системы, в которой можно запускать приложения, например текстовый редактор, или цсс редактор, или даже фотошопчик - в такой архитектуре надо иметь возможность отключать и включать процессы может просто запускать в iframe и просто удалять этот фрейм... |
Цитата:
Переменные можно вроде удалять так: var x=0; delete x; alert(x); или тут может через сборщик мусора ? Больше мне кажется вариантов нет. |
Цитата:
var x=10; delete x; alert(x); |
dmitriymar,
нельзя удалять! Все переменные объявленные через var не могут быть удалены - проверь хотя бы в песочнице свой код:) |
Dim@,
Цитата:
посмотри на сообщение выше моего , а потом опять на моё -повторять процедуру пока мой ник в твоём сообщении не станет лишним:D Цитата:
Цитата:
|
dmitriymar,
упс, немного не с тем выражением (интонацией) прочёл твой пост, поэтому немного неправильно понял :) :D |
Цитата:
Цитата:
Но ты ведь у нас броненосец, так что тебе этого не понять... |
кста, у меня из под винды удалило в новых: фф, хроме , опере -хотя это не по феншуй
ие и сборки линуксовские ведут себя по феншую |
Цитата:
одно дело - жикверить и бутсрапить и костыли знать другое дело - придумывать нечто новое - заниматься наукой работа же должна быть в кайф - а для этого надо думать и придумывать а не как все крутиться в сансаре тьюринга ну а если ты забыл что процессор классический 386 однопоточен, но ОС может эмулировать многозадачность |
два решения я уже набросал -
1) в самой программе дополнительные проверки на включенность программы 2) каждая программа запускается в отдельном iframe но это пока гепотезы надо будет еще раз фленгана перечитать шоли |
Цитата:
|
Цитата:
|
Цитата:
|
Часовой пояс GMT +3, время: 19:29. |