假设我有一个包含100多个小模块的MVC-ish html5应用程序。我希望即使在平板电脑或智能手机上也能尽可能顺畅地运行。
由于只有少数100多个模块同时使用,我说其中有一半甚至在与应用程序的普通会话中使用,将它们作为单个连接的js文件加载将它全部留在记忆中感觉有点蠢。
我目前使用 CujoJS curl ,这是一个AMD加载器。它非常适合开发,我认为它也非常适合某些生产环境。当然,缺点是单个文件下载时间较长,但在这种情况下我并不认为这是一个问题。我担心的是随着时间的推移内存使用情况,比如用户永远不会关闭窗口,并且更多模块在探索应用程序时不断累积在内存中。据我所知,AMD装载机不提供卸载模块的任何方法。
问题是,在这种情况下,我真的应该担心内存消耗吗?作为一个夸张的例子,200KiB (按需基本模块)之间的内存使用量会有所不同吗?即使在移动设备上,js代码的和4000KiB (从必需品到几乎从未使用过的功能)甚至可以忽略不计?
如果我应该关注内存消耗,我该怎么做才能最大限度地减少内存浪费?我只能通过提前规划,编写高效代码和卸载不需要来减少内存中的代码量模块。或者作为最后的手段,通过在某些点重新加载页面。
加分问题:(如何)我可以从 curl 缓存中卸载模块吗?我已经在 RequireJS 中读到了这一点,但我可以稍微调整一下,但我没有发现任何卷曲。