1

我正在使用 localstorage 在网页上执行 gmail 样式的自动保存。

所以我基本上每30秒保存一次到本地,OK。

问题是恢复。我无法检测到用户是否崩溃或错误退出。

所以假设用户崩溃并再次加载表单,我不能继续保存并覆盖以前的自动保存。我需要恢复以前的保存。

但是假设用户没有崩溃。他做的一切都是正确的,但随后使用不同的浏览器来编辑同一个文件,所以没有新数据到前一个浏览器的本地存储中。

然后他在以前的浏览器中加载文件。在这种情况下,不应恢复本地存储。

假设没有办法比较时间戳,我该如何解决这个问题?

谢谢。

4

1 回答 1

1

假设您使用的是 Gmail 等 AJAX 样式页面。

在页面级别但在本地存储之外和任何特定刷新区域之外保留一个布尔标志。

var bIsInited = false;

每当重新加载整个页面时,无论是用户单击刷新还是第一次加载页面(即重新启动浏览器之后),该标志都会为假。

如果在 UI 交互时此标志为 false,则从 localstorage 恢复 UI 的状态并将标志设置为 true。

继续对 localstorage 进行新的更改(除非像以前一样,该标志已通过某种方式设置为 false,在这种情况下,在将 UI 写回 localstorage 之前将 localstorage 读入 UI 是相同的信号)。

这个流程有很多变化,但这就是它的要点。

于 2010-06-09T23:27:16.423 回答