首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在JS中保存整个应用程序的最新状态

在JS中保存整个应用程序的最新状态
EN

Stack Overflow用户
提问于 2016-05-25 01:17:57
回答 1查看 23关注 0票数 0

我有一个交互式的基于网络的可视化。我希望允许用户在与可视化交互时能够撤销。我注意到有些人建议编写我自己的撤销函数,但在我的例子中,这可能真的很困难(有很多不同的事情需要跟踪)。如何在每次交互之后保存整个应用程序的最后状态?有什么想法吗?

谢谢,

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-25 01:33:05

您可以使用更多的状态驱动方法,并使用一些类似于React + Redux的工具,但听起来您已经有了一个您不想重新创建的现有应用程序。

在这种情况下,它实际上取决于您的数据是什么样子。它是一个JSON对象吗?在这种情况下,您可以一次又一次地克隆对象,这些对象将“保存”以前的状态。

您可以实现一个数据库,并使用时间戳和/或版本号保存所有所需数据的副本,以便回滚。这显然会导致大量的数据重复。

另一种方法是跟踪所有修改数据的事件,然后执行与该事件相反的操作。作为一个非常基本的例子,我把数字15加到我的“总数”中。如果我想撤销这一点,我会减去15。但是,只有在对所有数据执行操作时,这才有效。如果要将此应用于不同类型的数据,则可以将事件与前一个值一起存储。

我把我的名字从“鲍勃”改为“吉姆”。事件可以是一个对象:

代码语言:javascript
复制
{
  event: "stringChange",
  prop: "name",
  prev: "Bob",
  new: "Jim"
}

这会给你所有你需要的东西来撤销你的零钱。

这里有很多选项,这取决于您的数据是什么样子,以及您如何操作它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37426337

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档