如何检查数据是否被修改?

时间:2015-02-12 22:58:13

标签: algorithm

我有一个网络应用,允许用户编辑多个配置。我想让用户知道他们已经在本地更改但是自上次加载后没有提交。当用户更改配置时,"修改标志"应该消失。

实现它的好方法是什么?目前,我正在考虑保留配置的原始副本,并在每次用户进行一些更改时将当前配置与原始配置进行比较,但我担心性能,因为配置数据相当大。 (应用程序客户端在浏览器中运行。)

请帮助,谢谢。

1 个答案:

答案 0 :(得分:1)

我不认为性能会成为一个问题,但如果是,我还会创建一个基于关联数组的“脏字段”映射或一个字段名称为键的hashmap /对象。当然,所有字段名称必须是唯一的。这张地图最初是空的。

编辑任何字段时,请捕获onChange或onBlur事件,并仅将此字段与保存的字段进行比较。如果它们不同,请将它放在像field_map['field1'] = true;这样的脏地图上。如果它们相等,请从脏地图中删除此键。

因此,如果您的脏地图不为空,您将知道所做的更改,并且您还将确切知道哪些字段已更改。