这篇文章旨在开始对 Web 的单页应用程序进行更深入的讨论。在有关该主题的大多数资源中,有些问题似乎没有明确的答案。他们在我心中
- 授权和认证。由于整个 Web 应用程序都在客户端上,它可以在其任何功能中调用服务器,即使是那些用户无权访问的功能。用户看不到菜单这一事实并不妨碍该人调用 java 脚本函数。这在 MVC 应用程序中很容易处理,例如,通过使用基于 cookie 验证用户对特定功能的权限的控制器。但是,一些 SPA 应用程序仅使用带有 Breeze 或 Web Api 的单个控制器,这使得授权服务器端不可能。
- 客户端上的内存管理 对于小型示例应用程序来说,这不是问题,但是想象一个有 100 个屏幕的应用程序或一个在一天内提取数千条记录的单个屏幕的应用程序。有了持久缓存,人们可以想象会出现很大的内存问题,尤其是在 RAM 很少且功率不足的设备上,例如手机或平板电脑。一群开发人员如何在没有处理内存管理的清晰愿景的情况下拥有 SPA 路线?
- 三层部署 一些 IT 部门绝不允许带有连接字符串的应用程序连接到位于前端 Web 服务器上的数据库。我见过的每个 SPA 演示的结构都完全一样,包括 Breeze 或 Web Api。
- 不显眼的验证。它将要求开发人员使用 MVC 部分视图和控制器,而不仅仅是 HTML 文件,这似乎与 SPA 概念背道而驰,同时它提供了一种非常强大的方法来轻松地将验证和 UI 合并到 Web 应用程序中以支持它。
- 在 url 中公开基于主整数的键。
这在 OWASP 中是非否。因此,SPA 应用程序“似乎”针对安全要求很少且功能集小的领域。你怎么看?
谢谢。