【问题标题】:JSON Stringify crashingJSON Stringify 崩溃
【发布时间】:2013-01-21 00:07:51
【问题描述】:

我一直在测试一些代码,它采用 json 格式的变量并应该打印它,但是它会打印一个空数组。

如果我正在尝试这个:

console.log(JSON.stringify({first:1,second:2}));

然后我正在崩溃页面(Chrome:“Aw,Snap!”)。

我问了几个人,他们无法重现它,但我每次都得到它。也在 FireFox 中测试过,也崩溃了。

这是代码:

var timer={first:0,second:0,third:0,fourth:0};
localStorage.setItem('saveTimers', JSON.stringify(timer));

在 localStorage 中设置 []

【问题讨论】:

  • 可以粘贴代码吗??
  • 您发布的代码对我来说不会崩溃。如果我们无法重现它,我们真的不可能帮助您解决问题。
  • 在 Chrome 24.0.1312.57 m 中为我工作
  • 试试 {"first":1,"second":2}
  • 但是......如果它输出一些东西,那么它不会崩溃......我现在很困惑。请提供一个jsfiddle.net 演示来复制您的问题,这太猜测了。

标签: javascript json stringify


【解决方案1】:

因此,据我了解,您真正遇到的问题是将内容保存到 localStorage

这似乎更像是一个权限问题,而不是其他任何事情。浏览器是否有权访问文件系统?浏览器使用的文件夹是否可以写入?您是否尝试过重新安装浏览器?

这些是你应该检查的东西。

【讨论】:

  • 它与另一个页面上使用的代码相同,它确实正确保存了数据。
【解决方案2】:

我在运行它时能够崩溃它很多

for (var i = 0; i < 100000; i ++) {
    var timer={first:0,second:0,third:0,fourth:0};
    localStorage.setItem('saveTimers', JSON.stringify(timer));
}

也许您真的很快地多次运行此代码?解决这个问题的方法可能是限制你的函数,这可以通过implementing a throttle functionUnderscore.js's throttle 来完成。

【讨论】:

    【解决方案3】:

    如果您使用的是 chrome 的 beta 或 dev 版本,请仔细检查此行为在稳定版本中是否相同,如果不是,那么就是您的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-15
      • 1970-01-01
      • 2017-11-18
      • 1970-01-01
      • 2015-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多