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