单页应用程序:优缺点

215

我已经了解了单页应用程序(SPA)及其优点,但我认为其中大部分都不令人信服。有三个优点让我怀疑。

问题:你能够担任SPA的支持者并证明我对前三个陈述是错误的吗?

                              === ADVANTAGES ===

1. SPA非常适合实现高度响应式网站:服务器端渲染很难实现所有中间状态——小的视图状态不易映射到URL。单页应用程序的特点是能够重新绘制UI的任何部分,而无需进行服务器往返以检索HTML。这通过将数据与数据呈现分离来实现,具有处理数据的模型层和读取模型的视图层。 2. 使用SPA,我们不需要向服务器发送额外的查询以下载页面。 3. 可能还有其他优点吗?没有听说过其他的...
                            === DISADVANTAGES ===
  1. 客户端必须启用javascript。
  2. 网站仅有一个入口点。
  3. 安全性。

P.S. 我参与过SPA和非SPA项目的开发。我提出这些问题是因为我想深入了解。并不是要伤害SPA的支持者。请不要要求我阅读更多关于SPA的文章。我只想听听你们对此的考虑。


1
我建议你不要只是阅读有关单页应用程序的内容,而是花些时间去实际使用像extjs这样的框架进行实践。这些时间的投入将会得到回报,你将能够回答自己的问题。 - Wiktor Zychla
3
@WiktorZychla 我正在开发一个SPA项目。我使用JQuery + Backbone。我还编写了一个JSP网站。我无法回答那些问题。你能吗? - VB_
1
关于你提到的缺点,JavaScript 相当广泛地启用(但与任何依赖项一样,了解你的用户是有帮助的),因为安全性是在请求中管理的,所以任何方法之间的安全性都是相同的。SPA仍然是HTTP,只是在每个请求中不需要加载“页面的其余部分”。 - Jason Sperske
3
@VolodymyrBakhmatiuk: 那不重要,用户可能会妥协的是界面而不是数据,因为数据受到服务器端的保护。 - Wiktor Zychla
6
如果这个问题是基于个人观点的,该怎么办?我常常想知道何时以及为什么应该编写单页应用程序(SPA)。如果Stack Overflow也允许“优缺点”类型的问题,那将会很有帮助。 - Anurag Awasthi
显示剩余17条评论
11个回答

1
在我的开发中,我发现使用单页应用有两个明显的优点。这并不是说传统的Web应用程序不能实现以下功能,只是我认为在不引入其他缺点的情况下可以带来增量收益。
- 可能会减少服务器请求,因为渲染新内容并不总是或甚至从未是针对新HTML页面的HTTP服务器请求。但我说“可能”是因为新内容可能需要轻松地进行Ajax调用以获取数据,但该数据可以逐步变得更轻,而不是加上标记提供净收益。 - 能够维护“状态”。简单来说,在进入应用程序时设置一个变量,并且该变量将在用户体验期间通过其他组件可用,而无需传递它或将其设置为本地存储模式。然而,智能地管理此功能对于保持顶级范围整洁非常重要。
除了需要JS(这不是Web应用程序要求的疯狂事情之一)之外,其他注意到的缺点在我看来要么不特定于单页应用程序,要么可以通过良好的习惯和开发模式来缓解。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接