Показать сообщение отдельно
  #1 (permalink)  
Старый 08.12.2012, 16:57
Интересующийся
Отправить личное сообщение для digitalbrain Посмотреть профиль Найти все сообщения от digitalbrain
 
Регистрация: 28.07.2010
Сообщений: 21

Динамическая подгрузка и ВЫГРУЗКА скрипта...
Если писать веб приложение на JS то возникает необходимость подгрузки скриптов во время выполнения...да подгрузить вопросов нет...

this.script=$C('script','',head);
   this.script.type="text/javascript";
   this.script.onreadystetechange=function()     {if(this.readyState=='complete')this.onLoaded();}.bind(this);
   this.script.onload=function(){this.onLoaded();}.bind(this);
   this.script.src=this.Source;


но вот высвободить его с памяти никак...удаляешь его DOM узел , src в '' и сам объект в null все ровно браузер его не освобождает...и даже святой бубен не помогает..
Тут то и проблема, если скриптов всего 10 подгружаемых (не одновременно конечно)...ну то пусть в памяти остаются, но если их скажем 100 разных держать в памяти сотню мб изврат..

Есть пока идея подгружать сам код через ajax потом динамически создавать функцию =new Function(code) и выполнять в ней код подгружаемого модуля..по окончании работы вызывать специальный метод модуля для деинициализации чтоб по удалять все им созданные функции и потом подчищать внешние ссылки на него...ну на подобие модуля того ж делфи..
В принципе оно как то работает в черновой реализации...правда наверно где то утечка памяти есть ибо при 1000 циклов подгрузки - выгрузки модуля уходит мб с 30-40 озу...
и очевиден минус - так как это не скрипт как таковой - не будет кеширования кода...хотя модули по 30 кб конечно стягивать заново не проблема..0,5 сек дела то )
Может есть какие то готовые реализации принципа погрузки-выгрузки кода? Не изобретаю ли я велосипед часом?
Ответить с цитированием