我一直在开发一个非常大的基于Web的应用程序,使用Angular 1.5.x以及其他令人敬畏的模块ui.route,以简化单页面应用程序的方法。我使用RestAngular从后端API获取所有内容。工作真的很整洁 - 到目前为止。除了ui.tree和momentjs之外,并不是那么多第三方模块。
我担心的是:IRL的工作情况如何?在应用程序的某些部分,我有大约1000个项目的记录集。在其他部分(意思是:不同模块中的不同控制器)我必须为某些条件添加观察者才能启动。我在应用程序中使用了大约10个指令。每个部分都是自己的模块,控制器和/或服务,外部html文件作为不同路由的模板。以及侦听传入消息的websockets连接。大多数模型基本上分为两部分:列出概述,以及creste / update / delete项。一些细节视图有点复杂,例如它们具有可编辑的嵌套项,必须获取其他信息,因为所有内容都由基于id的API备份。
对我来说,这是一款非常棒的应用。有了测试数据,一切都很好。有什么值得关注的吗?一旦我将控制器留给另一个控制器,我是否需要“清除”任何内存,就像那样。
不确定我是否期望这个“是”或“否”,但是在这个领域可能会有更多的经验,这可能是一个很好的分享。
感谢。
答案 0 :(得分:0)
Angular应用程序可能非常大。问题是,你不必一次性显示所有内容,这就是问题的来源。角度变化检测与称为观察者的东西一起工作,观察者在每个摘要循环中执行数据比较。如果屏幕上有1000个元素,它将在每个摘要周期检查每个元素,这很常见。对于现代浏览器,屏幕上的上限似乎大约是4000项,但是这样想:人们实际上并不是一次在屏幕上看4000件事。因此,大多数观察者实际上并不需要。分页和虚拟重复等技术将大大减少浏览器上的需求角度位置,并让您的应用程序变得非常大。通常不需要清除内存。现代浏览器会让网页占用尽可能多的内存,我认为使用谷歌浏览器可以达到500MB。只要你保持你的数据结构很好,我怀疑你会遇到内存问题。