Web 应用中的撤销与重做

Web 应用中的撤销与重做

 

撤销(Undo)与重做(Redo)是绝大部分应用中都有的功能,它给用户提供了后悔药,这样用户即便误操作也能使损失达到最小,或者没有损失,给用户提供更好的使用体验。本文介绍 Web 应用中常用的两种撤销与重做实现思路,并提供一个在线案例。

Web 应用中的撤销与重做,很容易想到富文本编辑器,但本文不特指富文本编辑器,而是更具有普遍意义的 Web 交互应用。只要有用户操作发生的地方,就有可能出错,需要提供挽救的方法。在富文本编辑器里,用户的操作就是编辑文本内容,document.execCommand 能实现最基本的撤销重做,不过受限制也非常多,真正用起来也是捉襟见肘。

在其他类型的交互应用中,用户的操作多种多样,可以是移动一个组件的位置,也可以从小组中删除一个成员等等。面对这些丰富的场景,我们需要抽象出一些实现撤销重做的基本思路。

不管什么类型的交互应用,终究是用户对某个对象进行操作,每一步操作都会对操作对象产生副作用,使其状态发生改变。如下图中,系统初始化后,操作对象的初始状态是 S1,用户进行 A、B、C 等操作后,现在操作对象的状态是 S4。 如果没有撤销重做功能,这条操作链只会一直往前延伸,我们无法回到以前的状态。

用户操作路径

 

首先需要对撤销重做功能做出功能定义:

 

a. 能记录用户的一系列操作过程,并能根据记录恢复到当时的状态;

b. 用户在进行某个操作过后,能通过撤销(Undo)回到操作之前的状态;

撤销

c. 用户在撤销之后,也能通过重做(Redo)恢复前一次撤销的操作;

重做

d. 用户在任意状态下,如果有新的操作(

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值