5

我最近一直在阅读有关 SPA 的内容以及它有多好.. 我想知道是否有人可以告诉我什么时候应该使用甚至更好的时候我什么时候不应该使用 SPA 与常规 MVC 一起使用

4

3 回答 3

4

MVC(Rails、MVC4)的工具要成熟得多。有更多的文档专注于传统 MVC 站点的开发。单页应用程序开发是困难的。JavaScript 密集型应用程序难以编写,并且极难调试。

如果您想进入 SPA,请查看Pluralsight.com 上John Papa 的视频培训系列- 据我所知,它为开发 SPA 应用程序提供了最佳起点。或者研究 Backbone,但这根本不适合胆小的人(假装?)。

还有一个建议:如果您是 ASP.Net 开发人员,请查看 BreezeJS ( http://www.breezejs.com ) 进行数据管理。

于 2013-02-08T22:30:37.570 回答
1

这篇文很好地概述了 SPA 的一些潜在问题,以及一些解决方法的建议。

潜在问题包括:

  • 浏览器不是内存处理和垃圾收集的最佳物种。特别是在 DOM 处理方面。例如,从 DOM 中删除的元素仍然保存在内存中。如果我们让用户在不刷新的情况下长时间使用 DOM,浏览器可能难以解决内存问题

  • 理想情况下,我们应该尽可能多地重用 DOM 元素而不进行处置。但即使采用这种方法,如果用户在使用应用程序时创建了数千个可重用的 DOM 元素,浏览器也可能难以应对。另一方面,糟糕的编码实践造成的内存泄漏也会堆积在长期存在的 DOM 中。

  • 如果我们需要将完整的产品套件功能作为单页应用程序提供,那么一次加载的 JS/CSS 代码可能会影响初始加载时间。

于 2013-04-03T15:47:19.213 回答
1

我最近一直在阅读有关 SPA 以及它有多好..

SPA 只是颠倒了浏览器客户端的职责。传统的服务器端应用程序在后端完成大部分工作。SPA 在前端完成大部分工作。

好消息是,在客户端生成视图意味着前端开发人员可以在浏览器中完成所有设计,而不必担心接触后端。

将视图与模型分离(即控制器存在于两端)意味着数据可以作为 REST API 在服务器上公开,并重新用于针对其他平台(例如移动设备、平板电脑、智能电视)的客户端。

无需在每次加载页面时都刷新,从而获得更好的用户体验。

我想知道是否有人可以告诉我什么时候应该使用甚至更好的时候我不应该使用 SPA 与常规 MVC 一样

对于某些人来说,从服务器端 MVC 架构切换到构建 SPA 可能非常具有挑战性。许多专门使用服务器端语言的开发人员可能只是讨厌处理 Javascript(尤其是专门使用静态类型语言编程的开发人员)。

进行 SPA 的工作需要一些 url 重写和重定向解决方法。对于那些对服务器没有较低层次了解的人来说,这可能是一个非常令人困惑/痛苦的经历。

默认情况下关闭 Javascript 的用户将无法加载该站点。

SPA 在客户端上引入了更多负载,所有内容都在主上下文中运行,这可能会使 UI 变慢/无响应。在较新的 SPA 框架中有解决此问题的解决方法,但最好记住这一点。

为浏览器编写代码与为服务器编写代码有很大不同。浏览器中有很多复杂性(例如 DOM)。

用于前端开发的工具链与您发现用于开发大多数服务器端语言的工具链截然不同。一些程序员因他们的 IDE 而生死存亡。

对于某些人来说,起初通过 Ajax 动态获取数据可能非常困难。特别是对 HTTP 没有深入了解的开发人员。


真的,归结为一个问题。您想花时间学习如何构建 SPA 吗?

于 2015-11-03T14:03:15.207 回答