我们在嵌入式环境中开发应用程序。它是一个高级计算环境,在busybox Linux 系统之上具有完整的网络浏览器。唯一的例外是系统的系统内存量有限。
我们的应用程序是用 JavaScript 构建的,并在基于 Webkit 的网络浏览器中运行,并且由许多按顺序加载的 JavaScript 模块组成(效率不高)。
一些模块提供由多个模块使用的通用功能。我们正在使用 requirejs 转换我们当前的 javascript 加载器,但是我们必须首先解决一个特定的需求。
是否可以在使用 requirejs 加载模块时卸载它?假设我们使用以下方式动态加载模块:
require(["somemodule.js"], function(m) { m.run(); } );
这对于加载和运行“somemodule”以及解决“somemodule”的所有依赖项非常有效,并且requirejs框架将为未来的请求存储对“somemodule”的引用。
如果我们在某些时候需要回收内存,例如为了能够加载和运行无限数量的模块,我们必须在一段时间后开始删除其中的一些。在不改变内部实现的情况下使用 requirejs 是否可行?
以前有没有人处理过这种问题?大多数单页 JS 应用程序在桌面 PC 上的网络浏览器中运行,内存使用通常不是主要问题。