从单页面应用到 Hypermedia-Driven Application Architecture

举报
汪子熙 发表于 2023/06/28 10:04:25 2023/06/28
【摘要】 单页面应用程序(通过网络传输JSON)是在单个网页上运行的应用程序。在加载一个HTML页面和一些JavaScript后,它们依靠Ajax(“异步JavaScript和XML”)请求在服务器和客户端之间传递JSON数据对象,通过JavaScript和文档对象模型(DOM)API来更新HTML页面,而无需重新加载整个页面。在超媒体驱动应用程序 (HDA) 中,浏览器仅限于显示 HTML、处理 J...

单页面应用程序(通过网络传输JSON)是在单个网页上运行的应用程序。在加载一个HTML页面和一些JavaScript后,它们依靠Ajax(“异步JavaScript和XML”)请求在服务器和客户端之间传递JSON数据对象,通过JavaScript和文档对象模型(DOM)API来更新HTML页面,而无需重新加载整个页面。

在超媒体驱动应用程序 (HDA) 中,浏览器仅限于显示 HTML、处理 JavaScript 和 CSS,但不了解应用程序的状态(即之前发生了什么以及接下来会发生什么)。 应用程序的逻辑完全在服务器上维护。 相比之下,在单页应用程序 (SPA) 中,所有路由和潜在操作都是预先定义并在前端实现的。 因此,对应用程序的任何修改都需要重建前端应用程序。

在 HDA 中,关注点分离的想法并不是高度优先的。 CSS、JavaScript 和 HTML 没有完全分离,后端不仅负责数据,还负责生成 UI 和程序流程。 然而,这种方法的优点是我们可以在一个地方维护和自定义所有内容,就像我们过去习惯的那样,例如在以前的 SAP GUI 应用程序中。

最后,将所有这些概念结合在一起,我们相信,开发出复杂性要低得多的应用程序是可能的,但与 SPA 相比,UI 保真度仅略低一些。 或者,当我们尝试直观地说明它时,HDA 应用的设计目标是,找到 MPA 和 SPA 之间的“最佳平衡点”:

UI5 与 htmx 和 unpoly 等框架有很大不同。 在 UI5 应用程序中,所有逻辑都在前端处理,而后端则利用 OData 实现。 这意味着ABAP仅用于传递数据,没有机会实现自己的逻辑或UI。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。