javascript - 字符串 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
解决方案
所以我为解决这个问题所做的就是添加要修改的帖子(第 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));
}
推荐阅读
- php - laravel 祖先如何在 where 子句中使用
- python - 将 set() 转换为 int python
- asp.net-core - NToastNotify 不在异步帖子上显示消息
- python - 如何在 Python 中找到从周五开始的 2021 年的周数?
- javascript - React hooks api 链式调用有时会获取未定义的数据
- javascript - 如何读取文本文件并将特定行的值分配给 Javascript 中的变量?
- python - 用其他列 Pandas 中的值替换数据框列中的字符串
- django - Django 应用程序日志未在 Heroku 中显示
- python - 检测是否在 Python 中按下了任何按钮
- vue.js - VueJS 将“watch”路由传递给类组件