我可以将jQuery DOM克隆存储在本地存储中以供以后使用吗?

时间:2015-12-13 10:43:58

标签: javascript jquery serialization deserialization clone

我想存储一个表示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中持久化(自动保存)表单数据。然后,可以在网络中断或无意中浏览器导航或关闭之后提供信息。

1 个答案:

答案 0 :(得分:1)

你可以使用garlic.js进行本地持久化。希望这个链接可以帮助你简单使用,只需包含js文件并添加data-persist="garlic"作为表单属性。即使你的机器电源出现故障也可以保存表单数据。你可以从这里下载js文件。

http://garlicjs.org/