首页 > 解决方案 > 字符串 JSON 导致占用过多存储空间

问题描述

所以我正在建立一个网站,它会建议在纽约市参观的地点。虽然我想将数据作为 JSON 值保存在本地存储中,以便用户可以添加自己的,然后我可以添加 MongoDB。我使用 JSON 数据来构建网站的 DOM。但是当我重新加载页面时,我在第 15 次左右重新加载时失去了存储空间,我知道这是因为字符串被一遍又一遍地串起来,即

[[{"_name": "Stacks Pancake House & Smokehouse BBQ"

变成 :

"[[{\\\"_name\\\":\\\"Stacks Pancake House & Smo…on\\\

为之前的反斜杠添加更多的反斜杠占用越来越多的空间,因为我重新加载页面直到由于没有更多存储空间的错误而没有加载。这也是一个问题,因为反斜杠会导致站点 (DOM) 无法正确构建,因为 JSON 数据存在额外且不需要反斜杠的问题。我无法弄清楚具体是什么原因造成的。

GitHub:https ://github.com/dogboy602k/NYC146/tree/jsonversion

标签: javascriptjsonweb

解决方案


所以我为解决这个问题所做的就是添加要修改的帖子(第 420 行)的部分。我已经删除了 else 部分。所以只有在第一次加载时才会加载列表。但是,当您添加“帖子”时,它会更新列表,清除该列表的 JSON 列表,然后重新添加新列表。因此,根据季节和价格的输入,更改了一个变量 seasonAdjust,以了解要删除和重新添加、更新的列表。并随之重新添加更新的列表。

var seasonAdjusted = "";
  if (season != null && price != null) {
    if (season == 'spring') {
      seasonAdjusted = "springlist";
      if (price == 'cheap') {
        springlist[0].push(newPost);
      } else if (price == 'fair') {
        springlist[1].push(newPost);
      } else if (price == 'expensive') {
        springlist[2].push(newPost);
      }
    } else if (season == 'summer') {
      seasonAdjusted = "summerlist";
      //more code
    } else if (season == 'fall') {
      seasonAdjusted = "falllist";
      //more code
    } else if (season == 'winter') {
      seasonAdjusted = "winterlist";
      //more code
    }
    if (seasonAdjusted === "springlist"){
      window.localStorage.removeItem(seasonAdjusted);
      localStorage.setItem('springlist', JSON.stringify(springlist));

    }else if (seasonAdjusted === "summerlist"){
      window.localStorage.removeItem(seasonAdjusted);
      localStorage.setItem('summerlist', JSON.stringify(summerlist));

    } else if (seasonAdjusted === "falllist"){
      window.localStorage.removeItem(seasonAdjusted);
      localStorage.setItem('falllist', JSON.stringify(falllist));

    } else if (seasonAdjusted === "winterlist"){
      window.localStorage.removeItem(seasonAdjusted);
      localStorage.setItem('winterlist', JSON.stringify(winterlist));

    }

推荐阅读