Javascript Web应用程序数据存储

Javascript Web应用程序数据存储,javascript,jquery,web-applications,storage,Javascript,Jquery,Web Applications,Storage,假设我有两个或更多的标签,上面有几个输入和文本区域。 用户可以填写这些字段并切换选项卡,但我希望确保他们不会丢失字段中的数据 问题来了:当用户在选项卡之间切换时,如何保存数据? 现在我解决了这个问题,将数据存储在变量中,特别是对象文字(Javascript),但这是一种机械的方式 当然,我可以将数据推送到数据库中 我使用的是Javascript加jQuery。我真的很想想出一个解决这类问题的好办法 您可以使用localStorage 只需设置要存储的值: localStorage.setItem

假设我有两个或更多的标签,上面有几个输入和文本区域。 用户可以填写这些字段并切换选项卡,但我希望确保他们不会丢失字段中的数据

问题来了:当用户在选项卡之间切换时,如何保存数据? 现在我解决了这个问题,将数据存储在变量中,特别是对象文字(Javascript),但这是一种机械的方式

当然,我可以将数据推送到数据库中


我使用的是Javascript加jQuery。我真的很想想出一个解决这类问题的好办法

您可以使用
localStorage

只需设置要存储的值:

localStorage.setItem(key, stringData);
要获取数据,请执行以下操作:

var stringData = localStorage.getItem(key);
删除:

localStorage.removeItem(key);
这样,数据就可以本地存储在用户的浏览器中。用户也可以稍后返回,数据仍然存在

您可以通过侦听
存储
事件同步选项卡:

window.addEventListener('storage', updateStorage, false);

function updateStorage(e) {

    if (e.newValue === null) {
        localStorage.removeItem(e.key);

    } else {
        localStorage.setItem(e.key, e.newValue);
    }

}
storage
事件只会抛出到非活动选项卡,以便它们可以更新
localStorage
的独立副本

如果只需要存储会话的数据,可以使用
sessionStorage

有关
本地存储的详细信息


您希望何时保存数据,以便用户在回访页面时看到保存的数据?不,这不是问题所在。目标是让用户看到他在使用的会话中保存的数据,只需将其存储在客户端Javascript中即可。数据库用于在会话之间(或从会话到其他会话)持久化信息,而不是在会话内。IMHO/AFAIK。我想这个问题应该是关于堆栈溢出的。在没有手动复制和粘贴到StackOverflow的情况下,我如何迁移它?答案很好,但是。本地存储不是仅适用于最新浏览器吗?您需要一个支持HTML5的浏览器。尽管如此,IE8支持本地存储,所以除了Opera Mini(可能还有Lynx)之外,现在所有浏览器都支持本地存储(请参阅)