本地存储3个对象

这个问题在这里已经有了答案:

  • 在HTML5 localStorage中存储对象25个答案

  • 不,你不能。 localStorage (和sessionStorage )只能存储键值对,其中值只能是字符串。

    你可以做的最好的事情是存储简单的对象,使用一些序列化算法。 JSON是最常见的,因此您可以使用JSON.stringify将对象转换为字符串,将JSON.parse转换回对象 - 这不会是“相同”(即对相同数据的引用) ,但有一些相同的东西

    这意味着发生这种情况:

    var a = {value: 5},
        j = JSON.stringify(a);
    
    var b = a,
        c = JSON.parse(j);
    
    a.value = 7;
    b.value;   // 7
    c.value;   // 5
    

    但是,无论如何,这不适用于DOM元素。 他们不能存储,期限。 就像其他任何不是Object类的其他对象一样,除非它们提供了一个toJSON方法,可以将它们可靠地转换为字符串,最终可以将其解析回来。

    toJSON方法在内部由JSON.stringify用来将对象转换为字符串。

    例如, Date对象提供了toJSON方法。 您可以使用Date.parse将字符串转换回来:

    var d = new Date(),
        j = d.toJSON(); // e.g. "2014-02-22T10:35:41.579Z"
    
    var o = new Date(Date.parse(j));
    
    o.getTime() === d.getTime(); // true
    o === d;                     // false
    

    (请记住,JSON本身不支持IE7及更低版本。)

    尽管如此,你不能对DOM元素做同样的事情,所以2和3是不可行的。


    不久,没有。 您只能存储类型字符串的键/值

    但是,您必须查看:在HTML5 localStorage中存储对象

    他们通过对对象进行字符串化来解释解决方法。

    CMS报价(接受答案):

    var testObject = { 'one': 1, 'two': 2, 'three': 3 };
    
    // Put the object into storage
    localStorage.setItem('testObject', JSON.stringify(testObject));
    
    // Retrieve the object from storage
    var retrievedObject = localStorage.getItem('testObject');
    
    console.log('retrievedObject: ', JSON.parse(retrievedObject)); 
    
    链接地址: http://www.djcxy.com/p/27939.html

    上一篇: Local storage 3 objects

    下一篇: JavaScript saving to local storage?