Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > JavaScript: Общие вопросы > Очистка памяти |
Автор: maxkazar 28.9.2004, 15:37 |
Как из существующего массива (объекта) удалить элемент при этом удалить его из памяти? (ведь если элемент объекта не удалить из памяти будет происходить утечка памяти так же?) |
Автор: GoodBoy 28.9.2004, 15:43 |
maxkazar А это так актуально???? :-))) |
Автор: maxkazar 28.9.2004, 15:51 |
не то слов)..... смысл такой, что скрипт будет генерит всевозможные объекты без обновления странички, соответсвенно если не очищать память то через определенное время наверника будет нехватка памяти и т.п. |
Автор: GoodBoy 28.9.2004, 16:04 | ||
если сделать
|
Автор: maxkazar 28.9.2004, 16:16 |
Вот именно что только по идеи. простой пример alert(window.ggg) //Выводит на экран undefined window.ggg="test" alert(window.ggg) //Выводит на экран Test window.ggg=null alert(window.ggg) //Выводит на экран null Я так понимаю что null это тоже некоторое значение означающие "ничего" и при выполнении присвоения null некоторой переменной, память на самом деле не очищаеться, а происходит запись значения null или же не так? |
Автор: GoodBoy 28.9.2004, 16:24 | ||
запусти-ка вот это:
:-)))))))) |
Автор: Aliance 28.9.2004, 16:42 | ||
Нет, это, можно сказать, ноль. Ничего. Но не слово, а значение. |
Автор: Sardar 28.9.2004, 22:02 | ||||
Для этих целей существует не часто используемая команда delete:
Заметь что количество элементов в массиве по прежнему 2, впрочем память реально освобождается. Встречный вопрос, где это тебе понадобилось? В JS есть сборщик мусора, когда на значение больше нет ссылко, оно удаляется:
|
Автор: maxkazar 13.10.2004, 16:30 | ||
Да вобщем то на счет ссылок....ты прав, а вот delete может работать только с локальными переменными но не как не с глобальными ((....хотя единственный выход здесь, это же конечно косить все ссылки...
Затеял проектик небольшой)...хочу написать нечто похожее на объектную модель, позволяющую создавать клиентов наподобие Windows приложений. Прямой аналог Delphi. Т.е. вы запускаете среду разработки, кидаете там всякие элементы пишите обработчики событий (и все на JScript и DHTML) и вот оно - готовый клиент, который никогда не перезагружаеться и визуально похож на обыкновение Windows приложение)! Для чего это надо?....учень удобная штука для разработки бизнес приложение через Веб |
Автор: Alx 13.10.2004, 17:08 |
а нам покажешь? ![]() |
Автор: GoodBoy 13.10.2004, 17:14 | ||
Вай, щщщщщщщщщяйтан!!!!!!!!!!! А зачем????? :-))))))))) |
Автор: Sardar 13.10.2004, 23:34 |
maxkazar звучит красиво ![]() Идеи и результаты пости сюда, будем "жевать" мысль все вместе ![]() |
Автор: ElectricalStorm 14.10.2004, 00:36 |
это наверно Win Forms навеяло ? |
Автор: maxkazar 14.10.2004, 08:48 |
Откуда идея появилась хотите спросить)!...да на самом деле все просто.....Я занимаюсь тем что разрабатываю "тонких" клиентов. Постоянно сталкиваюсь с одной и той же проблемой. Не хватает функциональности(((. Переходить на "толстый" клиент - нельзя...Вот инадо что то изобрести, некого мутанта "тонкого" клиента, подкормить его немного (иными словами добавить функциональности). Про Win Forms читал, но это немножко не то.....Я не ограничиваюсь окошками на слоях в стиле Windows. Вобщемто я ставил перед собой задачу разработать базовую объектную модель. Голову морочить не стал (не стал изобретать колесо), а просто начял интерпретировать объектные подходы на языке JScript. За аналог взял объектную модель Delphi (давно с ним знаком). Вобщемто что то уже есть, а по точнее пару классов TObject и TComponent. Для тех кто не знаком с ними, поясню. Данный классы обеспечиваюь создание и управление объектами. Часто возникающий вопрос у посителей данной ветки "А зачем все это?" поясню ещё раз Разрабатываемая объектная модель будет работать только с продуктами от Microsoft (IE). Основаю задача - это разработка "тонких" клиентов по функциональности не уступающих "толстым". Представь те сами Window Application но на Web...Вам не надо закачевать какието исполняемые файлы на ваш компьютер, устанавливать COM объекты (что нарушает безопасности), а просто вы заходите на сайт и у вас тоже самое Windows Application но на вебе). А самое главное, это же сделать жизнь легче разработчикам. Конечный результат будет представлять из себя IDE среду и набор классов. |
Автор: Gregof 14.10.2004, 09:10 |
maxkazar глянь сюда http://bindows.net посмотри что другие делают |
Автор: maxkazar 14.10.2004, 09:49 |
Наконец то меня поняли.....вот как раз это (bindows.net) я и хочу сделать |
Автор: GoodBoy 14.10.2004, 10:51 | ||
Дык уже есть!!! ![]() |
Автор: Gregof 14.10.2004, 10:54 | ||
Сильно, сложно, а главное много... Но как говориться доргу осилит идущий, так что давай, а мы на форуме постараемся тебе помочь чем сможем. Я уже пол года работаю с библеотекой bindows, так что немного поднаторел в этом деле, если что смогу кое-что подсказать, или наоборот покритиковать.
Дык она денег просит !!! ![]() Думаю пора создать отдельную тему. |
Автор: Alx 14.10.2004, 12:41 | ||
народ, я ещё не очень в таких делах секу... ![]() ![]()
чё такое объектная модельи клиенты?? ![]() ![]() |
Автор: ElectricalStorm 14.10.2004, 16:28 |
прикольная штука... работы много там ... ALEXANDRO - купи какую-нибудь книжку по программирванию |
Автор: Alx 14.10.2004, 17:15 | ||
чё-то у меня их слишком много... ![]() |
Автор: maxkazar 15.10.2004, 09:46 |
Мысли в слух......на счет защиты JScript кода.....самый просто выход это ОБФУСКАТОР |
Автор: Sardar 15.10.2004, 10:40 |
maxkazar да, ну еще ИЕ как то пытается код кодировать. http://http;//vingrad.ru/@sergej.z написал не плохой компрессор-обфускатор JS, спроси его. |
Автор: sergejzr 15.10.2004, 13:35 | ||||||
Интересная штука ![]()
http://www.iwi-iuk.org:8081/tests/optjs/doall.php ![]() А смысл его в ограничении веса скрипта и уменьшения траффа. |
Автор: maxkazar 5.11.2004, 12:36 |
Дело идет полным ходом....готовы базовые объекты и пару базовых компонентов (кнопки, панели, картинки, комбобоксы и т.п.). Закончил TreeView и сразу же появилась проблемка. Если количество элементов TreeView больше 1000 начинаются реальные тормоза. Выход один - использовать подкачу веток TreeView, т.е. при развертывание какой нить ветки, происходит подкачка содержимого ветки. Мне кажется, что это единственный выход. Но вот встала проблема как!. Думаю что лучше всего для этого подойдет com объект Msxml2.XMLHTTP соответствено формат передачи данных XML, потому что: 1. объект Msxml2.XMLHTTP уже встроен в операционну систему Windows и по этому на клиенте дополнительный операций производить не надо; 2. для анализа XML документа есть уже отличный com объект Msxml2.DOMDocument, который также встроен в систему и предоставляет достаточно мощьный интерфейс работы с XML документами; 3. вобщемто все приемущества использования XML). И в дальнейшем считаю, что при разработке клиентских компонентов необходимо придерживаться следующего правила Получаем только то, что видим! т.е. клиент получает только необходимую информацию для отображения. Все остальное реализуется с помошью механизма подкачки. Например тот же самый текс в окне скрола. Я не вижу смысла полностью загружать весь текс! Достаточно загрузить только ту часть текса которая отображаеться в окне и при прокрутке подгружать необходимый текс. |
Автор: Sardar 5.11.2004, 14:31 | ||
Для текстовых полей это не нужно. На счет XML - в Опере не бдует работать(скоро будет) ![]() Можно извратится и подгружать нет XML, a сразу HTML. Конечно не будет XPath и прочего, но структура останется прежней, ее можно сразу же воссоздавать где угодно. Увы ккопирывание нод между докуемнтами не поддерживается ни одним бразуером(кривость от W3C...). |
Автор: maxkazar 9.11.2004, 11:30 |
Столкнулся ещё с одной проблемой. Слишком уж много памяти жрет этот IE((. Пробывал использовать HTA, там теже самые странички используют намного меньше памяти да и сам механизм HTA больше подходит для реализации данной идей, вот только недостатком HTA наверное можно считать выскакивающее окно безопасности(( |
Автор: Gregof 9.11.2004, 12:35 | ||
Это уж точно, у меня временами отъедает до 90 метров. Просто не лезет ни в какие ворота. |