我一直在测试一些以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中设置[]
答案 0 :(得分:1)
在运行 lot 时,我能够崩溃它:
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 function或Underscore.js's throttle来完成。
答案 1 :(得分:0)
因此,根据我的理解,您真正遇到的问题是将内容保存到localStorage
。
这似乎更像是权限问题而不是其他任何问题。浏览器是否有权访问文件系统?浏览器使用的文件夹是否可用于编写?您是否尝试过重新安装浏览器?
这些是你应该检查的东西。
答案 2 :(得分:0)
如果您正在使用测试版或开发版Chrome,请仔细检查此行为在稳定版本中是否相同,如果没有,那么就是您的问题。