2010-06-09 55 views
1

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

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

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

让我们假设用户崩溃并重新载入窗体,我不能继续保存并覆盖以前的自动保存。我需要恢复以前的保存。

但让我们说用户没有崩溃。他正确地做了一切事情,但后来使用了不同的浏览器来编辑同一个文件,所以没有新的数据到以前的浏览器的本地存储。

然后,他在上一个浏览器中加载文件。在这种情况下,本地存储不应该被恢复。

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

谢谢。

+1

为什么你不能使用时间戳? – luke 2010-06-09 23:24:35

回答

1

假设您使用的是像Gmail这样的AJAX样式的网页。

在页面级别但在localstorage之外和任何特定刷新区域之外保留一个布尔型标志。只要整个页面重新加载它是否是由用户点击刷新或首次网页加载

var bIsInited = false; 

的标志是假的(即浏览器被重新启动之后)。

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

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

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