2010-04-08 52 views
25

我有一个使用JavaScript编写的Web应用程序,它通过Safari以及iPhone在桌面上成功运行。访问localStorage时,其他人是否在iPad上收到QUOTA_EXCEEDED_ERR?

我们正在考虑将此应用程序移植到iPad,并且我们遇到了一个问题,即在设备上的localStorage中存储相对较少的数据时,我们会看到QUOTA_EXCEEDED_ERR。我知道这个错误意味着什么,但我不认为我存储了所有那么多的数据。

其他人在做类似的事吗?看到/没有看到这个问题?

凯文...

+0

经过进一步调查,我真的不明白为什么我会得到这个错误,我使用的存储可能是<1-2K。我最终只是复制了数据库中的功能,但是这需要异步执行所有操作。 – Kevin 2010-04-09 16:34:24

回答

31

我有同样的问题,它似乎像设置它解决它之前删除密钥。

function setkey(key, val){ 
    sessionStorage.removeItem(key); 
    sessionStorage.setItem(key, val); 
} 
+0

谢谢你,你救了我很多麻烦! – 2010-11-04 13:53:16

+0

如果这不起作用,请查看下面的私人模式答案。 – 2013-06-19 15:26:36

2

嘿,我得到同样的问题。我在iPad上试过我的应用程序,它正在吐出这个错误。我可以在我的Safari浏览器上复制它的唯一方法是,如果我把我的电脑置于私人模式下...

我认为只要它处于私人模式,localStorage就变成只读模式。所以我仍然没有解决方案,但如果有帮助,我很乐意听到它。

+0

我发现我确实可以在localStorage中存储一些数据,但只是所有这些。所以我不确定这是只读问题。 – Kevin 2010-04-10 14:47:47

+0

我的问题是私人模式。关闭它并且localStorage再次变得可用。版本5.1.1 – 2013-06-19 15:25:55

2

我在我的iPad上运行os版本3.something(对不起,可以记住确切版本)有同样的问题。我升级了操作系统到4.2.1,问题解决了!

似乎是苹果公司实施localstorage中的一个错误,而后者已经被修复。

3

如果您在设置之前使用删除存储数据的方式 - 它在某些浏览器中会很慢。删除数据比设置数据慢1.5倍(字符串大约50个标记)。 在FF 3.6(Ubuntu)上试用 - 浏览器对于SqlLite非常缓慢。 因此,只能对iPad设备进行破解。

7

这不是一个错误,用户可以去iPhone的设置,然后选择Safari浏览器。有一个选项可以设置私人布劳。默认打开存储器,但有些则禁用它。所以你应该在你的应用程序中创建一个告诉主题的消息来启用它。

+0

谢谢,这对我有用。它是有道理的,如果隐私浏览是什么,那么应该不存储任何内容。 – 2012-11-24 13:21:48

+1

这是我的另一种方式:私人浏览,localStorage作品;隐私浏览,localStorage不起作用。版本5.1.1 – 2013-06-19 15:27:09

+0

@TA先生我遇到了同样的问题。 http://caniuse.com/#feat=namevalue-storage在“注释”部分提到了这个问题。 – 2013-06-28 19:12:07

相关问题