我有一个关于SPA的一般性问题。那就是,SPA是否仅适用于仪表板类应用程序?或者我们可以将SPA用于任何规模的企业级应用程序开发(例如ERP解决方案)吗?
更新:
请查看以下链接,与John Papa,Dan Wahlin和其他人一起讨论这个话题。
答案 0 :(得分:15)
AngularJS是一个非常热门的项目,我也曾经使用过,但是你回过头来使用JavaScript中的所有逻辑,如果项目变得庞大(它是企业),这将增加复杂性和痛苦。
经验法则是:软件解决方案应该越复杂/企业,就越应该使用专业工具和静态语言(Java / C#)。
维护是软件寿命的80%。将它放在JavaScript中可能会非常棘手。在脚本语言中,重构,结构和开发人员的独立性有点困难。
SPA的一些使用案例是一种很好的方法:
1.当你想要一个适用于所有类型移动设备的高性能应用程序时(如果你买不起原生开发,如果你不想在销售东西时向Apple,谷歌,微软支付费用)。
2.您希望尽可能多地吸引用户的新闻网站(www.usatoday.com就是一个很好的例子)
3.社交网络,你必须尽一切可能保持用户活跃(例如:Facebook主要是SPA)
SPA的底线=最快的网络性能&最佳用户体验。
答案 1 :(得分:7)
好问题。我真的在SPA中开始研发企业移动优先应用程序。我从这次经历中学到了很多东西。如果您愿意,该应用程序有大约40个模块或应用程序。每个应用程序有大约3-6个视图。我很早就意识到传统的网络架构不会削减它,记住它是一个移动的第一个项目,所以我开始做一个水疗中心。
它有很多东西,而且还不够,或者在这里表达清楚,但它并不是那么难。以下是我认为你必须坚持的一些原则:
避免使用繁重的框架,它们会妨碍它们的进出,所以不要嫁给它们 Vanilla JavaScript在很多方面都是你的朋友。所有浏览器都支持相同的标准,Apis等。 利用本地存储来缓存数据和标记 不要一次下载大块标记 不要创建一个不必要的繁琐的应用程序,localStorage和indexDB是你的朋友 创建一种机制,以便在每次加载应用程序时仅提供已修改的标记内容 保持你的DOM小,太多的元素,甚至隐藏创建一个懒惰的机器饥饿的记忆。 使用appcache离线,但要了解它的怪癖
总的来说,我的大多数企业应用程序都可以用100kb或更少的JavaScript来完成,这就是整个应用程序。我的DOM通常少于100个元素,在视图中显示长列表或表。我的所有应用程序加载时间不到1秒,并在后台加载子模块内容。
答案 2 :(得分:1)
只有使用Angular将某个成功的ERP构建为单页应用程序,才能获得肯定的肯定答案。
民用网络框架包含精心设计的样本[1] [2],制造者探讨了这一方向。这似乎不是一个完整的解决方案,但可能会更接近架构。
[1] http://www.civilian-framework.org/doc-samples.html#crm
[2] https://groups.google.com/forum/#!topic/angular/Q3GrhAH39AU
答案 3 :(得分:0)
对我而言,Google Dart + Polymer声称可用于ERP开发。 但谷歌正在与Dart,Flutter,Dartino做一切正义 废弃的Polymer.Dart和Dh Dart编辑。