我正在尝试为iPad创建一个简单的网络应用,需要在没有互联网连接的地方使用。该应用程序是一个简单的“幻灯片”,但也包括一些视频文件(通常约100MB)。
最初我计划使用HTML5的离线清单缓存,以便在上网之前将互联网连接可用时将资产同步到iPad的内存,但不幸的是,似乎存在限制(至少在iOS 3.2中)缓存总数不超过5MB。
看看谷歌使用HTML5网络数据库的方式我想知道另一种解决方案是否可能将视频/图像资产投入到数据库中的blob中。但是,我很难找到一种方法来读取存储在数据库中的blob中的二进制数据。
我的问题是:
答案 0 :(得分:5)
只是想分享我的经验,因为它可能是相关的。我们(尝试)开发了一个基于iPad的网络应用程序,需要存储1000个图像和文件(如演示文稿和文字文档)
Windows上的模拟(Safari 4& 5)可以将编码为base64的图像导入到Web SQL数据库(blob字段)中,并使用db回调显示它们来设置像src="data:image/jpeg;base64,...base65encimagedata..."
这样的图像标记源
必须使用脱机缓存/清单上载其他文件(doc,ppt,pdf)。即使我们可以将它们作为base64进入数据库,也无法查看它们。
现在出现了问题...... Desktop Safari允许您创建一个大型SQL数据库(我做了1 Gig导入的3000个图像。)并且没有对脱机缓存施加已知限制。
然而,在iPad上,事情没那么有用,因为我无法创建超过50Mb的数据库,加上5Mb缓存限制。
一些替代方案(我还没试过):
答案 1 :(得分:2)
数据库的限制为5 MB,之后系统会提示用户允许大约20 mb。硬限制是20-25 MB,之后您不能再在本地存储中插入任何记录。