使用HTML5 Web数据库存储文件以进行脱机访问

时间:2010-08-20 13:37:34

标签: ipad html5

我正在尝试为iPad创建一个简单的网络应用,需要在没有互联网连接的地方使用。该应用程序是一个简单的“幻灯片”,但也包括一些视频文件(通常约100MB)。

最初我计划使用HTML5的离线清单缓存,以便在上网之前将互联网连接可用时将资产同步到iPad的内存,但不幸的是,似乎存在限制(至少在iOS 3.2中)缓存总数不超过5MB。

看看谷歌使用HTML5网络数据库的方式我想知道另一种解决方案是否可能将视频/图像资产投入到数据库中的blob中。但是,我很难找到一种方法来读取存储在数据库中的blob中的二进制数据。

我的问题是:

  1. 是否有人可以提供[链接]将二进制数据读入客户端HTML5 Web数据库(并访问它)的示例?
  2. 对于5MB限制,这是否是一种明智的替代实施方法?

2 个答案:

答案 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. 在iPad上试用Opera Mini(或其他可用浏览器)
  2. 我知道Google Chrome(使用webkit)对其SQL数据库大小有限制,但您可以使用某些SQL对其进行“修补”(https://groups.google.com/a/chromium.org/group/chromium-html5/browse_thread/thread/8672b2e0cd69a9f7/ebf17070d32c1168?lnk=gst&q=database+size#ebf17070d32c1168)以增加其大小。也许这可以在iPad上以某种方式完成。

答案 1 :(得分:2)

数据库的限制为5 MB,之后系统会提示用户允许大约20 mb。硬限制是20-25 MB,之后您不能再在本地存储中插入任何记录。