对 UI 持乐观态度
乐观 UI 并不是一个新鲜事物(游戏开发人员长期以来一直致力于客户端预测的想法),但这一概念最近引起了很多关注。
这个想法很简单。根据用户操作,即使后端的请求可能仍在等待中,界面也会更新。最终,乐观的 UI 只不过是一种管理感知性能和避免加载状态的方法。
在 React 中工作流程可以很简单。
- 捕获用户操作(例如,单击按钮)。
- 更新本地状态,从而更新 UI。
- 发送请求。
- 得到回应。
- 如果答案是否定的,则回滚更新本地状态(步骤 2)。
- 如果是,则不执行任何操作或确认步骤 2。
消除 UI 交互中的细微延迟似乎可以创造更快、响应更灵敏的用户体验。然而,乐观 UI 也存在一些缺点。
首先,乐观 UI 并非万能的解决方案。关键在于,如果服务器出现故障(误报),UI 更新应该能够优雅地恢复,但如果用户触发的操作在应用程序的路由中发挥作用,则很难做到这一点。
此外,由于存在误报风险,乐观型用户界面似乎不适合用于检查航班或现金转账体验。想象一下告诉用户这笔现金转账已被撤销。
另一方面,对于不太重要的操作(例如发帖或发布快速消息),乐观的 UI 似乎还可以。
第二点是乐观的 UI 更适合用于生成布尔值(真或假,是或否)的操作,如果出现误报,则可以轻松恢复。
根据我的经验,当出现问题时,该技术最关键的一点是让它显而易见。处理 UI 错误非常重要。操作和错误信息之间的间隔不能超过两秒。
我创建了一个小型应用程序,展示了如何实现乐观式 UI。只要你回答了其中一个问题,即使请求仍处于待处理状态,UI 也会立即更新。应用程序可以在这里查看,代码在这里查看。
这篇文章是关于 UX 和 UI 工程系列文章的一部分。
文章来源:https://dev.to/tiagodcosta/being-optimistic-in-ui-511k