4

我一直在测试一些代码,它采用 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 中设置 []

4

3 回答 3

1

我经常运行它时能够让它崩溃

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

也许您真的很快地多次运行此代码?一个解决方案可能是限制你的函数,这可以通过实现一个节流函数或使用Underscore.js 的节流来完成。

于 2013-02-05T22:52:22.520 回答
0

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

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

这些是你应该检查的事情。

于 2013-02-05T22:48:29.920 回答
0

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

于 2013-02-05T22:56:20.277 回答