我不仅要为客户端而且要为服务器端实现撤消和重做功能。对于insatnce,我有一个包含图像的div,我可以旋转调整大小并重写它,图像生成的所有基本操作。并且所有操作都会更新数据库和图像。你可以说我的图像正在重新生成,并且数据库在每次操作后都会更新。
现在我需要实现撤消和重做功能。我也做了一些研究。我需要的是如何实现所需任务的最佳方法。我正在考虑维护每个操作“日志类型的东西”或使用数据库或使用 javascript 数组(包括 HTML 或其他什么)来处理它??
实现我的目标的最佳方法是什么。
谢谢,
最佳答案
在基本层面上,您需要两件事:
一个操作堆栈(数组),用于跟踪已执行的操作。当用户执行操作时,您创建一个描述该操作的对象并将其添加到数组中。当用户点击撤消时,您可以从数组中删除最后一项。
每个操作类型都需要一个“保存”方法和一个“撤消”方法。这可能会变得很棘手,因为一些“撤消”方法类似于它们的“保存”方法(即撤消水平翻转,您只需执行另一个翻转),而其他方法则没有这种对称性(即撤消裁剪,您必须存储裁剪前的图像数据)。
如果您想要“重做”功能,那么您需要第二个操作堆栈。每次撤消操作时,您都会将其添加到重做堆栈的末尾。如果用户点击“重做”,则您将其再次移回操作堆栈。
查看命令模式 (http://en.wikipedia.org/wiki/Command_pattern) 可能会有所帮助,因为它通常用于实现撤消。
关于php - 实现撤消和重做功能 javascript 和 php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8837387/