使用单机的Excel时,大家都用过撤销/恢复功能。这是个非常常用的功能,来防止和解决误操作的发生,当然,也可以当作是找回实时历史的一个简单实现(关于文档历史功能,这是一个很大的话题,本篇不表)。
本文要探讨的,是在多人协作环境下,表格的撤销和恢复功能。
我们从简单的例子着手。
假设现在有两个协同者A和B。A编辑表格A1, 原来是空白,A写成1;之后,B编辑相同的表格A1,B看到了内容1,并更改为2. 再然后A撤销,表格A1内容应该变成空白。
再复杂一点的例子。A在离线情况下,编辑表格A1,原来是空白,A写成1;同时,B在线编辑相同的表格A1,B看到的内容是空白,B改写成2;之后A上线,两者的文档同步,最终A1的内容是1.这时,A撤销,应该发生什么?