我需要使用Web SQL离线保存11 MB的数据。在iOS中,我被问到是否要增加配额,一切都很好。但是在Android的原生浏览器(2.3-4.2)中没有出现这样的提示 - 它只是失败了QUOTA_ERR *。
我花了很多时间进行密集搜索并且完全阅读了与此问题相关的所有内容,但我仍然不能完全确定是否应该收到提示,以及是否可以通过任何方式推迟限制。 / p>
任何真实的信息或帮助都将非常赞赏。
*“剩余存储空间不足,或达不到存储配额,用户拒绝为数据库提供更多空间”
答案 0 :(得分:1)
您是否在打开期间给出了估计的数据库大小,像这样?
var size = 11 * 1024 * 1024; // 11 MB
var db = openDatabase(db_name, '', description, size);
数据库大小会有一个上限。如果你在Android浏览器上找到了上限,我将不胜感激。
感谢。
答案 1 :(得分:1)
我试着整天研究一下,看看Android和iPhone的最大尺寸是多少。在目前的Android 4.x手机上,限制似乎固定在8MB左右,实际上限制了你存储多达400万个字符的json内容(每个字符在utf-16中是2个字节)。
我没有测试的Android设备会在您达到限制时提示您,而不是iPhone,它会在数据库创建时(尺寸> = 5MB)提示您,并且当您点击每个设备时限制(5,10,25和50兆字节)。
您可以创建几个较小的数据库,但它不会帮助您增加Android上的总存储空间,但仍然限制为8MB。如果您在WebView中运行,那就是另一个故事; 在Android上你可以存储多达50MB,在iPhone上(在UIWebView中)也可以存储相同的内容 - 没有得到提示。
PS。如果压缩字符串,您可能能够以8MB的速度填充11MB的数据。预计读/写速度会降低大约十倍。见http://labs.ft.com/2012/06/text-re-encoding-for-optimising-storage-capacity-in-the-browser/