我需要使用 Web SQL 离线保存 11 MB 的数据。在 iOS 中,我被问到是否要增加配额,一切都很好。但是在 Android 的本机浏览器 (2.3-4.2) 中没有出现这样的提示 - 它只是失败并显示 QUOTA_ERR*。
我花了很多时间进行深入的搜索,并且已经阅读了与此问题相关的所有内容,但我仍然不能完全确定我是否应该收到提示以及是否可以通过任何方式提高限制。
任何真实的信息或帮助将不胜感激。
* "剩余存储空间不足,或已达到存储配额,用户拒绝为数据库提供更多空间"
你有没有在打开时给出估计的数据库大小,像这样?
var size = 11 * 1024 * 1024; // 11 MB
var db = openDatabase(db_name, '', description, size);
数据库大小会有一个上限。如果您发现 Android 浏览器的上限,我将不胜感激。
谢谢。
我整天都在研究这个,以找出 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。如果您压缩字符串,您也许可以将 11MB 的数据塞进 8MB 中。确实预计读/写速度会降低大约十倍。请参阅http://labs.ft.com/2012/06/text-re-encoding-for-optimising-storage-capacity-in-the-browser/