使用当前浏览器功能编写仅客户端应用程序是完全合理的。我亲自构建了一个复杂的应用程序,仅使用后端的 Firebase 和从 CDN 作为客户端提供的 HTML/JavaScript。这特别适用于具有固有简单安全模型的应用程序类型:
- 单用户应用程序(数据属于并由一个人修改的地方)
- 聊天和通讯小部件
- 组织私有的应用程序,其中客户端连接至少在较小程度上经过身份验证和信任(协作编辑器和 CRM)
在某些情况下是可能的,但不太适合计算量大的工具,即使是低级别的用户数据也必须由受信任的第三方仔细控制(例如,玩家可以破解自己的统计数据并计算有效统计数据需要复杂算法的游戏)
您还可以通过用“特权消费者”替换传统的 API 和服务器脚本来大大减少服务器管理和设置。这些也是 Firebase 的侦听器,具有更高的访问权限,它们像客户端一样侦听和处理数据,然后写入安全数据,不应允许普通用户访问或操作。
仅客户端模型的一个缺点是增加了安全性的复杂性。必须信任每个客户端来计算和存储自己的数据,或者必须通过安全规则或某种外部监控(例如特权消费者)仔细保护数据。
通过深入研究有关“胖客户端”或“胖客户端”设计模式的文献,您可能会发现一些有趣的设计理念。您可能还想查看分布式游戏以获取一些见解。