我正在构建一个带有时间线的单一页面应用程序,并从一个分页的REST中加载这些对象。我想删除后端不存在的对象,或者已经被其他用户编辑过的对象,但是我能想到的解决方案看起来非常天真,而且非常昂贵。
我想做的是迭代加载的对象并检查它们是否仍然存在于后端(或者将所有的对象ID传递到后端,并获得一个不再存在的项的列表)。这感觉是个坏主意。
如果用户不在线,Webhooks似乎就会失败,并且获得自用户上次请求页面加载以来已删除的项目列表时,会感到不完整、笨重和容易失败。
我觉得这部分可以通过在成功的编辑/删除响应上修改前端的对象来处理,但这仍然不能处理其他用户进行编辑的情况,而且我需要更新其他用户的时间线。
在后端删除对象时,是否有更新前端的最佳实践?
发布于 2021-01-24 08:48:48
不,这不是一个“最佳实践”。这是关于寻找一个满足您的需求和需求的解决方案。
前景有类似的东西。有时,当我在单独的窗口中打开电子邮件,然后意外地删除Outlook主窗口中的电子邮件时,在另一个窗口中删除电子邮件会导致出现"email已被删除“之类的错误消息。这是解决这个问题的一个解决方案:不要更新前端,而是在用户尝试删除或修改后端中已经删除的对象时给出消息。
如果后端中的删除立即与前端通信是非常关键的,那么解决方案可能是使用像SignalR这样的库。但是使用这种解决方案的缺点是需要花费大量的精力来设计和实现。这个解决方案是否值得,这取决于您(还是您的产品负责人)。但这是解决问题的另一种解决方案:使用某个库将后端的更改传递给前端。
这一问题也可能有其他解决办法。重要的是要区分解决方案和最佳实践。解决方案解决问题,最佳实践是实现或使用解决方案的最佳方法。
发布于 2021-01-29 14:27:32
我不是一个前端专家,但听起来你需要研究的是响应性的前端框架和/或如何使用可观察到的。有很多免费的资源来了解后者。
这里有一个链接可能对你有帮助。
简而言之,您可以使用可观察的方法在后端和前端之间设置流。随着后端的变化,前端也应该发生变化。这种方法是连续轮询REST更新的另一种方法,这是您在问题中所描述的。
https://softwareengineering.stackexchange.com/questions/421442
复制相似问题