我有一个带有画布区域的页面(与 HTML5 无关),人们可以在其中通过拖动照片来创建“艺术”,创建他们可以拖动、拉伸、着色等的 div。等等。画布 div 在里面画布容器 div。现在我想实现一个 UNDO 选项。我的想法是做一个
canvasBackup$ = $('#canvas').clone();
当操作开始时,例如在每个 dragStart 事件中,以及在操作结束时,如果使用 Ctrl-Z 请求 UNDO,将执行
$('#canvas').remove();
canvasBackup$.appendTo($('#canvasContainer');
我担心的是,随着页面的增长并开始减慢页面的响应速度,克隆,也许还有追加,可能会有点计算密集型。我想这取决于 jQuery 如何进行克隆。如果它只是从 DOM 中断开该部分并直接进行内存复制,那应该还不错。但是,如果有大量的计算和构建,它可能是一个问题。
有没有人觉得这是否是实施 UNDO 的合理方法?
谢谢