中后台页面,用户发生新增、修改、删除的动作非常频繁。比如一个详情页,只修改了其中一部分,但后端只提供了 getDetails 这个获取整个详情的接口。此时,前端该如何有效率的去更新操作后的页面呢?
方案一:后端在操作性的接口返回新的状态
新增、修改、删除这类接口,可以在请求成功后的响应主体里面,带上更新后的状态信息。
方案二:前端自己维护状态
很多时候,我们都会发起请求来更新状态。其实,有很多是不必要的。我们完全可以在前端进行修改。下面列举两个例子:
- 例子一:详情页 A,详情描述被用户修改了,是否要重新请求后端的数据呢,答案是没必要的。前端只要拿到后端的操作成功标志,可以对已有的 object.descript 进行修改, 然后更新到视图。
- 例子二:列表 A,pageSize 为 10,删除的其中一个项时,删除后是否要重新请求数据呢?答案是不一定的。有时,我们可以在前端对当前的 list 数据进行过滤,去掉删除 的这条,等到当前页面全部被删除时,再去后端请求数据。
这样做的好处是什么?
- 因为在前端修改状态后页面几乎是瞬间更新的,可以省去 http 请求的时间,让页面响应更快,体验更友好。
- 可以简化接口,同时减轻后端的负担。