【问题标题】:save array values on reload and retrieve it back [closed]在重新加载时保存数组值并将其检索回来[关闭]
【发布时间】:2013-07-13 13:09:53
【问题描述】:

我每分钟都会将一些随机值推送到一个数组中。

在重新加载时,我想取回这个推送的内容并继续每分钟推送一些随机数据?

我正在使用本地存储。

MyCODE--:

localStorage.setItem("test",Myarray.push(JSON.stringify(data)));
var test2 = localStorage.getItem("test");
test = JSON.parse(test2); //var test is now re-loaded!
console.log(test);

这不起作用。

【问题讨论】:

    标签: javascript jquery local-storage


    【解决方案1】:

    本地存储仅适用于字符串。此外,push 返回数组的新长度,因此您发布的代码不会按预期工作。试试这个:

    Myarray.push(data);
    localStorage.setItem("test", JSON.stringify(Myarray));
    

    【讨论】:

      【解决方案2】:

      将数据推送到数组中,然后以 JSON 格式存储在 localStorage 中:

      // Set
      Myarray.push(data);
      localStorage.setItem("test", JSON.stringify(Myarray));
      

      在获取数据时解析 JSON(将其放在脚本顶部或 onload 方法中):

      // Get
      if (localStorage.getItem("test")) {
          Myarray = JSON.parse(localStorage.getItem("test"));
      } else {
          // No data, start with an empty array
          Myarray = [];
      }
      console.log(Myarray);
      

      【讨论】:

      • 但是如何在页面重新加载时使用相同的内容???似乎没有人回答这个问题?
      • @MESSIAH 我已经对其进行了一些编辑以使其更清晰。
      • 我尝试了您的代码,但是当我单击其他链接时,它再次重新启动,即 Myarray 已清除,我如何继续使用已推送到 myarray 中的数据+目前正在插入的数据。?这就是为什么我们正在使用本地存储...
      • 我需要查看更多您的代码。你是如何初始化 Myarray 的?你能在 JSFiddle 或类似网站上发布一些东西吗?
      • 好吧,我只是简化了我的问题。在我的原始代码中,涉及到 php,数据每 30 秒通过 ajax 传递一次。我希望你能理解我要解释的内容。jsfiddle.net/9Tmwp跨度>
      【解决方案3】:

      问题是您将返回值从.push() 存储到本地存储(这是数组的长度),而不是实际数据。

      您应该根据需要推送到数组,然后将数组字符串化并存储。

      var Myarray = [];
      Myarray.push(....);
      
      localStorage.setItem("test", JSON.stringify(Myarray);
      

      【讨论】:

        猜你喜欢
        • 2015-05-31
        • 1970-01-01
        • 1970-01-01
        • 2021-05-01
        • 2019-09-03
        • 2021-02-15
        • 1970-01-01
        • 2020-04-30
        • 2021-01-07
        相关资源
        最近更新 更多