如何处理来自后端的过时API信息

时间:2019-08-13 06:21:21

标签: rest asynchronous web-frontend

我正在使用angular来使用Rest API,但是在这种情况下,前端语言并不重要。

有问题的API在传播其更新时相当慢。假设我对字段 xxx 进行了更新,直到实际更新资源为止,它最多可能需要10秒钟。

更新API调用的响应会告诉我它是否有效,以及资源(最终)是否是最新的。

在应用这些更改之前执行GET时,我会看到旧的(陈旧的)资源。显示这些旧结果会导致最终用户的UX变得奇怪,正如我将在下一个示例中演示的那样:

示例

paginated list with delete button for each entry

因此有一个带有条目的分页列表。分页发生在服务器上,因此前端只执行...?page=1&num=5之类的查询。

当我在条目上按Delete键时,我将对API进行DELETE调用,该调用将以202 Accepted返回

如果我随后刷新页面,则将执行API-GET-call,并且(陈旧的)已删除项目仍将在那里。仅当我在10秒钟左右后刷新页面时,删除的项目才会有效消失。

导航到第二页并返回第一页时,也会发生同样的情况。每当我从API获取新数据时(太早),该项目就会重新出现,并使最终用户认为出了点问题。

我可以实现某种本地缓存来保留API响应并过滤掉那些删除的结果。但是我确实希望从其他条目中获取新数据……而且不仅是删除的条目,还有修改后的条目。

列表顶部有过滤选项。修改字段可能意味着由于过滤该字段不再出现在初始列表中。

有人要对抗类似的任务吗?您是如何处理它的(以一种用户友好的方式?)

0 个答案:

没有答案