从网络相关的Web应用程序到网络独立的Web应用程序

问题描述 投票:4回答:1

我是一个全栈Web开发人员,目前我主要使用前端框架(例如angular)和后端框架(例如spring boot)来构建单页应用程序。

通常,我的Web应用程序的设计(假设它是CRUD)如下:假设我在更新页面上,并且我更新了一个实体。然后,向后端发出请求,以更新数据库中的实体。当后端响应说一切都很好时,您的实体已经更新(状态代码200),我进入了下一页,这是具有url之类的已读页面,例如entityName/{id},我将实体的ID传递给了下一页网址。然后,在读取的页面上,我得到该ID,向后端提出请求,检索实体数据并显示它们。

[当用户失去与Internet的连接时出现问题,因此无法向后端发出请求,因此数据无法显示到ui或更新。

另一种设计是:我在更新页面上,我更新了我的实体。向后端发出请求,但状态仍保留在客户端。因此,假设连接断开,我仍然可以转到阅读页面并显示更新的实体。此外,由于状态/数据保存在客户端,因此我不必向后端发出第二个请求以从id中获取实体,因为该实体位于客户端。在用户花在应用程序上的时间内,连接恢复,并向服务器发出更新请求以同步数据库和客户端上的数据。

在我看来,第二种方法对用户来说更方便,因为ui并不太依赖对后端的请求来显示其信息,从而使其更加流畅和更加令人愉快。

我非常知道第一种方法正在使用中。我是这样开发的,所以我的问题是:是否有可能从第一种设计过渡到第二种设计,如果可以,采用什么技术?

我要实现第二个设计所要做的就是使用服务在组件之间共享数据(当使用angular实现时)。这样,应用程序的状态可以保留在客户端。但是也许有更好的方法。我听说了用于管理应用程序状态的NgRx库。 是在客户端管理应用程序状态的正确方法吗?]

还有第二个问题,就是要确保在恢复连接时发出了丢失连接时无法发出的请求。因此,我想知道:是否有可能使用一种能够使请求排队并在连接恢复时重新运行它们的工具?

我有渐进式Web应用程序和服务工作者的概念,但只有这样的想法(例如,我知道服务工作者可以用来缓存与服务器交换的数据),我想知道这是否是解决此问题的方法吗?

我正在等待您对我的信息的评论。我希望时间不会太长。预先感谢。

我是一名全栈Web开发人员,目前,我主要使用前端框架(例如angular)和后端框架(例如spring boot)构建单页应用程序。通常是我的网络应用程序的设计(...

angular web progressive-web-apps ngrx
1个回答
0
投票

此外,由于状态/数据保存在客户端,所以我没有向后端发出第二个请求,以从id,因为该实体位于客户端]

© www.soinside.com 2019 - 2024. All rights reserved.