繁体   English   中英

如何在本地存储中存储多个数据

[英]how to store more then one data in localstorage

我需要的

  • 我需要在数组中存储更多的数据,这样的用户单击div,相应的数据必须存储在数组中。

喜欢

id:1223,城市:“芝加哥”,

ID:12333,城市:“纽约”;

      function favaorite(sess_id,name,city,country,event_url,pointer)
        {



        /* store imageurl in localstorage */
        var  imageUrl='/images/star1_phonehover.png';


        // Save data to the current local store//

        // Put the object into storage
        localStorage.setItem('id' ,JSON.stringify(sess_id));

        // Put the object into storage
        localStorage.setItem('name' ,JSON.stringify(name));

        // Put the object into storage
        localStorage.setItem('city',JSON.stringify(city));

        // Put the object into storage
        localStorage.setItem('country',JSON.stringify(country));

        // Put the object into storage
        localStorage.setItem('event_url',JSON.stringify(event_url));


        // Put the object into storage
        localStorage.setItem('imageUrl',JSON.stringify(imageUrl));

第2步。

     /* fetch the data using from localstorage */
        var id= [];
        var name= [];
        var city = [];
        var country =[];
        var event_url= [];

        // Retrieve the object from storage
        //var id, city, country,event_url;


        var id = localStorage.getItem('id');
        console.log(id);
        id = JSON.parse(id);
        var name = localStorage.getItem('name');
        name = JSON.parse(name);
        console.log(name);

        var name = localStorage.getItem('name');
        name = JSON.parse(name);

        var city = localStorage.getItem('city');
        city = JSON.parse(city);
        console.log(city);

        var country = localStorage.getItem('country');
        country = JSON.parse(country);
        console.log(country);

        var event_url = localStorage.getItem('event_url');
        event_url = JSON.parse(event_url);
        ///console.log(event_url);

        var image_url = localStorage.getItem('imageUrl');
        //event_url = JSON.parse(event_url);
        alert(image_url);
        console.log(image_url);

这是快照:

在此处输入图片说明

  • 我需要在数组中存储更多的字符串。
  • 我已经通过console.log(id.length)// undefined尝试过。
  • 我也看过循环以在localstoarge中存储更多值。

     for (var i = 0; i < localStorage.length; i++) { console.log(localStorage.key(i)) }; 

您可以对整个对象进行字符串化,然后一次保存所有内容:

localStorage.setItem('event', JSON.stringify({
    id: sess_id,
    name: name,
    city: city,
    country: country,
    event_url: event_url,
    imageUrl: imageUrl
}));

它还将使代码更简单,更短:

function favaorite(sess_id, name, city, country, event_url, pointer) {

    /* store imageurl in localstorage */
    var imageUrl = '/images/star1_phonehover.png';

    // Save data to the current local store//
    if (typeof (localStorage) == 'undefined') {
        console.log('Your browser does not support HTML5 localStorage. Try upgrading.');
    } else {
        try {
            // Put the object into storage
            localStorage.setItem('event', JSON.stringify({
                id: sess_id,
                name: name,
                city: city,
                country: country,
                event_url: event_url,
                imageUrl: imageUrl
            }));
        } catch (e) {
            if (e == QUOTA_EXCEEDED_ERR) {
                console.log('Quota exceeded!'); //data wasn't successfully saved due to quota exceed so throw an error
            }
        }
    }
}

检索保存的事件数据,您只需执行以下操作即可:

var eventData = JSON.parse(localStorage.getItem('event'));

这样尝试

您必须创建一个对象,并在每次单击时填充详细信息,然后将该对象推入数组,然后使用JSON.stringify()将数组存储在本地存储中。

并且在再次检索时,使用JSON.parse()解析该JSON。

    function favaorite(sess_id,name,city,country,event_url,pointer){
       var eventData = JSON.parse(localStorage.getItem('eventData '));
       if(eventData ==null){
           eventData=[];
       }

       Var details={};

       details["sess_id"]=sess_id;
       details["name"]=name;
       details["city"]=city;
       details["country"]=country;
       details["event_url"]=event_url;
       details["pointer"]=pointer;

      eventData.push(details);

      localStorage.setItem('eventData', JSON.stringify(eventData));
    }

在检索将字符串解析为json时,您将获得这些单击事件详细信息的数组。

var EventDetails=JSON.parse(localStorage.getItem('eventData '));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM