自动保存模式

时间:2010-06-09 23:19:27

标签: javascript autosave

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

所以我基本上每30秒就保存到本地,好的。

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

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

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

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

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

感谢。

1 个答案:

答案 0 :(得分:1)

假设您正在使用像Gmail这样的AJAX风格页面。

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

var bIsInited = false;

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

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

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

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