2010-08-20 124 views
12

我正在尝试为iPad创建一个简单的网络应用程序,这需要在没有互联网连接的地方使用。该应用程序是必不可少的一个简单的“幻灯片”,但也包括一些视频文件(通常大约100MB)。使用HTML5网络数据库存储离线访问文件

最初我打算使用HTML5的离线清单缓存同步资产到iPad的内存时,在路上,但不幸的是似乎有一个限制(至少在iOS 3.2中)缓存总共不超过5MB。

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

我的问题是:

  1. 任何人都可以提供[链接]在读取二进制数据到客户端HTML5网络数据库(和访问它)的示例?
  2. 对于5MB的限制,这是一个明智的替代实施方法吗?
+0

你有没有得到这个地方?我在寻找类似的问题,但对于桌面 – 2010-10-21 12:43:08

+0

不幸的是,我们不得不围绕嵌入式Safari实例编写一个瘦应用程序。应用程序本身做了初始内容请求,抓取清单,获取内容,然后在本地从磁盘呈现给浏览器实例。我们坚持解析与当前HTML5规范格式相同的清单,希望有一天我们可以摆脱应用程序,并使用RAW BROWSER POWER(R)TM !! 1! – andybee 2010-10-24 21:24:38

回答

5

只是想分享我的经验,因为它可能是相关的。我们已经(尝试)开发基于iPad的网络应用程序,需要存储1000个图像和文件(例如演示文稿和文档文件)

Windows上的模拟(Safari 4 & 5)可以导入以base64编码的图像进入Web SQL数据库(blob字段)并使用db回调来显示它们以设置图像标签的来源,如src="data:image/jpeg;base64,...base65encimagedata..."

必须使用脱机缓存/清单上载其他文件(doc,ppt,pdf)。尽管我们可以将它们作为base64加载到数据库中,但无法查看它们。

现在的问题...桌面Safari可以让你创建一个大型的SQL数据库(我做了1千兆次进口3000张图片),并没有对离线缓存施加已知的限制。

但是在iPad上,事情并没有那么有用,因为我无法创建超过50Mb的数据库,再加上5Mb缓存限制。

一些替代品(我还没有尝试过它们尚)一直:

  1. 在iPad上尝试的Opera Mini(或其他可用的浏览器)
  2. 我知道谷歌浏览器(使用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上完成。
+0

总之,这是不可能的(至少目前)。对于我的特定项目,它看起来就像在UIWebView周围编写一个瘦应用程序,将内容拉到iPad的文件系统然后显示它。 – andybee 2010-09-01 20:17:20

2

该数据库具有5 MB的限制,此后用户被提示允许大约20多个MB。硬限制是20-25 mb,此后不能再向本地存储中插入更多记录。

+0

官方文档的任何链接? – Dan 2013-01-20 23:01:12

+0

限制是平台和浏览器特定的webStorage以及WebSQL。 – Astronaut 2013-04-01 09:15:27