我想存储一个表示DOM元素的jQuery对象,供以后使用。我已经有了这些方法来执行对象和文本的存储和检索,以及localStorage:
make
值得庆幸的是,它基于Stack Overflow源代码,除了字符串外,还适用于简单对象。
我想到的是这样做:
make
然后,很久以后,其他地方:
var Data = {
set: function(key, value, session) {
if (!key) {return;}
if (typeof value === "object") {
value = JSON.stringify(value);
}
if(session){
sessionStorage.setItem(key, value);
}else{
localStorage.setItem(key, value);
}
},
get: function(key, session) {
if(session){
var value = sessionStorage.getItem(key);
}else{
var value = localStorage.getItem(key);
}
if (!value) {return;}
// assume it is an object that has been stringified
if (value[0] === "{" || value[0] === "[") {
value = JSON.parse(value);
}
return value;
}
}
问题是,在这种情况下似乎并没有起作用。是否有一个基本原因导致jQuery对象无法以这种方式序列化和反序列化?
这怎么可能有用?一种情况是在用户填写长格式时在localStorage中持久化(自动保存)表单数据。然后,可以在网络中断或无意中浏览器导航或关闭之后提供信息。
答案 0 :(得分:1)
你可以使用garlic.js进行本地持久化。希望这个链接可以帮助你简单使用,只需包含js文件并添加data-persist="garlic"
作为表单属性。即使你的机器电源出现故障也可以保存表单数据。你可以从这里下载js文件。