Model view controller 当使用reactjs客户端时,更新后端服务器的常用方法是什么?

Model view controller 当使用reactjs客户端时,更新后端服务器的常用方法是什么?,model-view-controller,reactjs,reactjs-flux,flux,Model View Controller,Reactjs,Reactjs Flux,Flux,使用reactjs构建的前端客户机似乎可以修改数据,但为了保持这种修改,修改需要存储在后端。但是,与传统的客户机-服务器应用程序不同,在客户机上呈现的数据并非始终从后端派生 例如,使用classic To Do应用程序示例,给定初始状态 (psuedo代码) 待办事项列表 *任务1 在此处添加新任务 添加任务 当用户添加新任务时,客户端将更新任务列表 To Do List * Task 1 * Task 2 <input> Add your new task here </i

使用reactjs构建的前端客户机似乎可以修改数据,但为了保持这种修改,修改需要存储在后端。但是,与传统的客户机-服务器应用程序不同,在客户机上呈现的数据并非始终从后端派生

例如,使用classic To Do应用程序示例,给定初始状态

(psuedo代码)

待办事项列表
*任务1
在此处添加新任务
添加任务
当用户添加新任务时,客户端将更新任务列表

To Do List
* Task 1
* Task 2
<input> Add your new task here </input>
<button> Add Task </button>
待办事项列表
*任务1
*任务2
在此处添加新任务
添加任务

但是,新添加的任务“任务2”不一定在后端存在。为了确保性能(客户端不必等待往返更新)和一致性(如果后端更新失败,需要让用户知道并采取某种措施),可以采用哪些公认的方法将此信息推回到后端

我认为最有帮助的搜索词是“乐观更新”。基本上,你需要记录对服务器提出的请求(例如,“将‘购买土豆’添加到任务列表中”),以及该请求是否已完成(成功或失败)。我看到您在Flux下标记了这个问题,所以您可能正在构建一个Flux存储来处理API请求

我听说的一种模式是为Todo项构建一个存储区,该存储区有两个内部数据存储区,一个用于确认数据,另一个用于乐观更新。负责向React组件提供数据的方法构建了一个表示,该表示将已确认的数据与更新队列相结合


当请求成功、失败或超时时,将向项目存储发送一个指示此结果的操作。如果请求成功,可以将相应的项目添加到已确认的数据中;如果有错误,则可以将其从乐观更新队列中删除(希望还向用户发送一些有用的信号)。

我认为最有帮助的搜索词是“乐观更新”。基本上,您需要记录对服务器发出的请求(例如,“将‘购买土豆’添加到任务列表中”),以及该请求是否已得到满足(成功或失败)。我看到您在Flux下标记了这个问题,所以您可能正在构建一个Flux存储来处理API请求

我听说的一种模式是为Todo项构建一个存储区,该存储区有两个内部数据存储区,一个用于确认数据,另一个用于乐观更新。负责向React组件提供数据的方法构建了一个表示,该表示将已确认的数据与更新队列相结合


当请求成功、失败或超时时,将向项目存储发送一个指示此结果的操作。如果请求成功,可以将相应的项目添加到已确认的数据中;如果有错误,则可以将其从乐观更新队列中删除(希望还向用户发送一些有用的信号)。

我认为最有帮助的搜索词是“乐观更新”。基本上,您需要记录对服务器发出的请求(例如,“将‘购买土豆’添加到任务列表中”),以及该请求是否已得到满足(成功或失败)。我看到您在Flux下标记了这个问题,所以您可能正在构建一个Flux存储来处理API请求

我听说的一种模式是为Todo项构建一个存储区,该存储区有两个内部数据存储区,一个用于确认数据,另一个用于乐观更新。负责向React组件提供数据的方法构建了一个表示,该表示将已确认的数据与更新队列相结合


当请求成功、失败或超时时,将向项目存储发送一个指示此结果的操作。如果请求成功,可以将相应的项目添加到已确认的数据中;如果有错误,则可以将其从乐观更新队列中删除(希望还向用户发送一些有用的信号)。

我认为最有帮助的搜索词是“乐观更新”。基本上,您需要记录对服务器发出的请求(例如,“将‘购买土豆’添加到任务列表中”),以及该请求是否已得到满足(成功或失败)。我看到您在Flux下标记了这个问题,所以您可能正在构建一个Flux存储来处理API请求

我听说的一种模式是为Todo项构建一个存储区,该存储区有两个内部数据存储区,一个用于确认数据,另一个用于乐观更新。负责向React组件提供数据的方法构建了一个表示,该表示将已确认的数据与更新队列相结合

当请求成功、失败或超时时,将向项目存储发送一个指示此结果的操作。如果请求成功,则可以将相应的项目添加到确认数据中;如果有错误,则可以从乐观更新队列中删除相应的项目(希望还可以向用户发送一些有用的信号)。

根据我的理解(但我很可能弄错了,在这种情况下,我很高兴得到纠正),灵感来自,有可能:

  • 在客户端添加任务时的操作
  • 通过在模型中创建一个“挂起的”仅客户端实体来响应此操作的存储
  • 实际尝试在服务器上创建对象的API方法
  • 如果一切顺利,将创建一个操作以确认项目已创建
  • 商店对此的反应是在客户端“整合”商品
  • 如果发生错误,则会创建不同的操作(并且存储区应做出相应的反应,可能会将该项标记为“错误中”)
    To Do List
    * Task 1
    * Task 2
    <input> Add your new task here </input>
    <button> Add Task </button>
    
    myAjaxCall().then(function () {
      // everything fine...
    } , function () { 
     // some error occured... 
    })