我正在为正在进行的辅助项目进行原型设计/概念验证阶段的结尾,并试图决定一些更大的应用程序设计决策。该应用程序是一个专为敏捷开发流程量身定制的项目管理系统。我需要做出的决定之一是是否要使用传统的多页应用程序还是单页应用程序。
目前,我的原型是传统的多页设置,但是我一直在寻找ribs.js来清理某些结构并将其应用于Javascript(jQuery)代码。骨干.js似乎可以在多页应用程序中使用,但在单页应用程序中却更具光芒。我试图提出使用单页应用程序设计方法的优缺点列表。到目前为止,我有:
好处
所有数据都必须通过某种API才能获得-这对我的用例来说是一个很大的优势,因为无论如何我都希望为我的应用程序提供一个API。现在,大约60-70%的我获取/更新数据的调用是通过REST API完成的。做一个单页应用程序将使我可以更好地测试我的REST API,因为应用程序本身将使用它。这也意味着随着应用程序的增长,API本身也将增长,因为这就是应用程序所使用的。无需维护API作为应用程序的附件。
响应速度更快的应用程序-由于将初始页面之后加载的所有数据保持在最低限度并以紧凑格式(例如JSON)进行传输,因此数据请求通常应该更快,并且服务器的处理量会稍少一些。
缺点
- 代码重复-例如,模型代码。我将不得不在服务器端(在这种情况下为PHP)和Javascript的客户端上创建模型。
- Java语言中的业务逻辑-我无法给出任何具体示例说明为什么这样做会很糟糕,但是我觉得所有人都可以阅读的Java语言中的业务逻辑对我来说是不合适的。
- Javascript内存泄漏-由于页面永远不会重新加载,因此可能发生Javascript内存泄漏,而且我什至不知道从哪里开始调试它们。
还有其他一些东西是双刃剑。例如,对于单页应用程序,为每个请求处理的数据可能要少得多,因为该应用程序将要求特定请求所需的最少数据,但是这也意味着可能会有更多的小请求服务器。我不确定这是好事还是坏事。
在决定应该以哪种方式进行项目时,应牢记单页Web应用程序的哪些优点和缺点?