Мы разрабатываем приложение во встроенной среде. Это высокоуровневая вычислительная среда с полным веб-браузером поверх загруженной Linux-системы. Единственное исключение состоит в том, что система имеет ограниченное количество системной памяти.
Наше приложение построено в JavaScript и работает внутри веб-браузера на основе Webkit и состоит из множества модулей javascript, которые загружаются последовательно (что не очень эффективно).
Некоторые модули предоставляют общие функции, которые используются несколькими модулями. Мы находимся в процессе преобразования нашего текущего загрузчика javascript с помощью requirejs, но есть одна конкретная необходимость, которую мы должны решить в первую очередь.
Можно ли выгрузить модуль, когда он был загружен с помощью requirejs? Предположим, что мы динамически загружаем модуль, используя:
require(["somemodule.js"], function(m) { m.run(); } );
Это хорошо работает для загрузки и запуска "somemodule" , а также для разрешения всех зависимостей для "somemodule" , а структура requirejs будет хранить ссылку на "somemodule" для будущих запросов.
Если в какой-то момент нам нужно восстановить память, например, чтобы иметь возможность загружать и запускать бесконечное количество модулей, мы должны немного удалить некоторые из них. Возможно ли это с requirejs без изменения внутренней реализации?
Кто-нибудь раньше сталкивался с подобной проблемой? Большинство одностраничных приложений JS работают в веб-браузере на настольном ПК, где использование памяти обычно не является серьезной проблемой.