代码之家  ›  专栏  ›  技术社区  ›  davidbaguetta

我应该等待服务器响应还是立即更新客户端?

  •  0
  • davidbaguetta  · 技术社区  · 6 年前

    所以这个问题今天突然出现在我脑海里。我正在使用Angular开发一个SPA,我正在开发这个日历模块(想想Google日历),用户可以在其中添加、编辑和删除事件。

    我想知道你对在一个动作发生后不等待服务器有什么看法。例如,如果用户决定添加新事件,则在提交表单时,会向服务器发送一个HTTP请求,将该事件添加到DB并返回一个响应。最初,我订阅了服务器响应,一旦成功接收,我就用新事件更新了UI。但随后我更改了代码,以便在用户提交新事件之后,它首先在客户端和UI中更新,然后才将请求发送到服务器。

    这显然有风险,如果服务器中由于某种原因出现问题,向用户提供警告并在添加事件后再次删除其事件可能会令人沮丧。但出问题的可能性极小。如果直接在客户机上完成更新,则用户接收反馈的速度会快得多,从而使应用程序更加无缝和快速地使用。

    实际上,我在浏览器上打开谷歌日历,发现他们做了完全相同的事情。对事件执行的任何操作都有即时反馈,在页面底部会出现一个弹出窗口,显示“正在保存…”大约半秒钟,然后显示“已保存事件!”你们觉得这一切怎么样,每种方法的优缺点是什么?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Raed Khalaf    6 年前

    一切都是为了 请求隔离

    i、 如果请求依赖于其他请求。

    让我们考虑一个消息传递系统,它有发送消息的组和用户。

    • 发送消息:显然,在请求运行时更新视图具有良好的用户体验,并允许用户并行发送许多消息,即在不等待以前的消息的情况下发送消息,只需在每条消息中添加一个小微调器,指示其状态:

    enter image description here

    • 创建组:在这种情况下,普通用户可以创建组并邀请用户加入,创建组的请求在请求运行时不能反映在UI上,因为在这种情况下,您可以向尚未创建的组发送消息。