账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    在线编辑器, 多人同时编辑, 如何设计undo/redo的逻辑?
    57
    0

    甲用小写, 乙用大写, 按顺序写了一行字: aaaBBBccc. 然后甲撤销和乙撤销, 各自应该是什么逻辑?
    我感觉有三种模式: (现有的文本编辑器会合并类似的action. 撤销一下, 可能消失很多字母. 以下描述为了说明问题, 简化为不合并任何action)
    1. 按action撤销. 甲/乙撤销, 会消失一个c. (这样做我觉得容易做, 所有状态容易管理)
    2. 只撤销自己做的. 甲撤销, 消失一个c; 乙撤销, 消失一个B. (Google docs是这么做的, 但是交叉修改后再撤销重做, 应该会造成极大的混乱, 如何解决?)
    3. 一路撤销到自己做的. 甲撤销, 消失一个c; 乙撤销, 变成aaaBB. 这样就是有点绝情了. 甲想恢复自己的编辑, 需要乙重做.

    还有没有别的想法? 某个选择是不是有无可替代的优势?

    我感觉指导思想还是让用户容易操作. 而且前提是用户不会互相拆台, 互相攻击, 毕竟是协作关系. 如果互相拆台, 哪种模式都一样. 全选, 删除, 就完事儿了.

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 马红俊 普通会员 1楼
      502 Bad Gateway

      502 Bad Gateway


      nginx
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部