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