【问题标题】:"Undoing deletes" in webapplication?Web应用程序中的“撤消删除”?
【发布时间】:2011-02-28 16:07:36
【问题描述】:

我看到越来越多的网站在按下删除按钮后提供撤消选项。按钮背后的逻辑是怎么做的?

该项目是否被 javascript 删除并从用户屏幕上“消失”并添加了计划删除,这让用户有时间撤消它或它是如何工作的?

还有哪些其他选项可以为用户提供撤消功能?

【问题讨论】:

    标签: php mysql transactions undo undo-redo


    【解决方案1】:

    这实际上取决于应用程序的结构。

    一种常见的方法是不删除记录/项目,而是在内部将其标记为已删除(使用布尔列),将其从所有查询和列表中排除。

    如果您有节点结构,您可能希望将项目移动到“回收站”节点,从该节点可以将其恢复到其原始位置。

    在这两种变体中,已删除的项目会不时被清除 - 根据时间(3 周后删除)或数量(最多保留 50 个已删除项目,然后开始删除最旧的项目。)

    【讨论】:

    • 您好 Pekka,非常感谢您的回答!简单易行的解决方案!好东西
    【解决方案2】:

    我同意 Pekka 的观点,但另外建议您将相关列设为日期时间字段,而不是布尔值(称其为“已删除”或其他内容)。

    这将轻松启用“n 周后删除”功能,并让您真正“撤消”而不是简单地“取消删除”。

    【讨论】:

    • 是的!好主意。我们刚刚实现了这一点。非常感谢!
    【解决方案3】:

    在 HTML5 中会有一个Undo implementation!

    但是正如 Pekka 所说,您的应用程序必须跟踪“撤消”它所做的工作。一种技术解决方案是保存文档或数据的修订。因此,当用户想要撤消某项操作时,只需加载上一个修订版

    【讨论】:

    • 看起来 HTML5“撤消”功能(无论这意味着什么)已中止和/或链接本身不再相关。保存修订对撤消编辑很有意义,但对删除没有帮助。
    猜你喜欢
    • 2020-01-25
    • 1970-01-01
    • 1970-01-01
    • 2012-03-17
    • 1970-01-01
    • 1970-01-01
    • 2017-07-13
    • 1970-01-01
    相关资源
    最近更新 更多