我正在编写一个自定义HTML编辑器。用户可以编辑整个HTML内容,更改将在DOM中进行更新。我们可以选择撤消所有更改。

逻辑:

进行更改之前,请克隆整个容器,然后再次应用它。

缺点:

  • 在js内存中存储一​​个巨大的变量。
  • 然后再次应用更改,dom将重新粉刷所有内容。

  • 有什么办法可以达到相同的目的吗?

    最佳答案

    您的问题非常有用。我不知道处理这种情况的最佳方法是什么,但我确实知道在这种情况下可以使用Command Design Pattern。使用命令设计模式,您可以撤消已保存在程序中的事件。据我了解,使用“命令设计模式”的诀窍在于,当您需要撤消某些操作时,您需要具有执行相反功能的函数。例如,如果您需要撤消加法功能结果,则需要具有减法功能。对于绘图功能,您需要具有清除/擦除功能。这是JavaScript example

    10-07 14:28