AngularJS:单页面和多页面应用程序的区别并在实践中使用?

Vil*_*oja 9 ajax angularjs single-page-application

我一直在研究单页应用程序和多页面应用程序之间的区别,我认为我很清楚它们的区别.单页应用程序首先加载单个html页面,然后它再也不会完全刷新页面或覆盖原始页面,除非刷新应用程序(浏览器刷新等).例如,angularJS种子项目:angular-seed具有index.html文件.此文件是服务器将发送到前端的单个页面,之后,所有其他(可能的)页面将使用AJAX异步发送.因此,如果您使用angularjs种子创建应用程序,它总是只是一个SPA应用程序,我是对的吗?

那么在实践中你会创建一个带有angularjs的多页面应用程序吗?那你不需要多个angularJS应用程序吗?您是否必须为每个angularJS应用程序分别设置路由?为什么人们想为angularJS做多页应用?因为一个人总是可以使用第一个index.html作为shell,没有真正的内容,然后为不同的页面分别使用容器页面.可以说angularJS多用途应用程序是一个应用程序,它只包含许多SPA angularJS应用程序吗?在SPA中,您可以使用浏览器的后退按钮,以便返回上一个视图吗?

Oli*_*idt 2

是的,您对 SPA 和 MPA 的理解是正确的。

Angular.js 使您能够创建 SPA,但不会强迫您。在 MPA 中,我不会谈论多个 Angular 应用程序,因为您只需将 Angular.js 模块分布在多个 HTML 页面上。然后,页面流或路由逻辑将位于 Angular.js 控制器中、普通超链接中或服务器后端中。

可能有理由不将整个应用程序放在 Angular.js 下。也许由于某些原因,Web 应用程序的身份验证部分可能会单独举行......

在 SPA 中,您绝对可以使用浏览器的后退按钮。你只需要以某种方式实现它。Twitter 通过将其 Web 应用程序的状态编码到 URL 中来解决这个问题 - 如果您使用 Twitter,您可能已经注意到地址栏中的符号 (#!)。