如果你打开http://app.ft.com http://app.ft.com(金融时报移动网络应用程序),系统会提示您将该应用程序添加到您的“主页”。
执行此操作后,当您打开应用程序时,系统会再次提示您允许将 localstoreage 数据库大小增加到 50MB。
- 如何才能做到这一点?是否有一些 JavaScript API 调用?权限还是什么?
- 此 iPad(iOS?)是特定的,还是可以在其他 Webkit 浏览器上运行?
我碰巧知道一些这件事;)
没有用于请求增加现有数据库存储大小的 API。有一种强制增加的方法:将需要增加的数据写入数据库,提示用户。然而,这会很慢and没有办法知道当前分配的空间,所以不推荐。
Black Frog 的部分观点是正确的:唯一巧妙的方法是在打开数据库时请求一个非常大的数据库,例如:
openDatabase('databaseName', '1.0', 'My Database', 50*1024*1024, …
...请求 50MB 空间。
然而,当用户第一次访问该网站时,您可能不想立即提示他们 50MB 的限制;所以你可能会认为你可以先要求5MB,然后再用50MB重新打开它?不幸的是,这不起作用 - 第二次打开尝试(数量增加)会默默地成功,不会提示增加大小,也不会实际增加可用大小。
因此,FT 应用程序从一个 5MB 的“预览”数据库开始,这样用户在第一次加载时就不会收到提示。它尝试不超过 5MB 限制,因为分配的任何空间都必须在所有数据库之间共享。
如果用户选择允许存储更多内容,则应用程序会尝试打开具有 40MB 空间(提示用户批准 50MB)的不同名称的数据库。这允许在该数据库中使用 40MB,在原始预览数据库中使用 5MB,因此在插入行时两者都不会失败 - 因为 50MB 总计是目前 iOS 上的限制。
目前,所有浏览器处理数据库空间限制的方式都不同,因此,如果您计划跨平台,请仔细测试。 Desktop Safari 处理得相当好,允许更大的空间; Chrome根本不允许任何增加;等等。预计所有“HTML5”实现都会以奇怪的方式有所不同:)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)