【问题标题】:Using HTML5 web database to store files for offline access使用 HTML5 网络数据库存储文件以供离线访问
【发布时间】:2012-05-25 17:30:28
【问题描述】:

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

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

查看 Google 使用 HTML5 网络数据库的方式,我想知道是否有一种替代解决方案是将视频/图像资产放入数据库中的 blob 中。但是,我很难找到一种方法来读取二进制数据以存储在数据库中的 blob 中。

我的问题是:

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

【问题讨论】:

  • 你在这方面有什么收获吗?我正在寻找类似的问题,但适用于桌面
  • 不幸的是,我们不得不围绕嵌入式 Safari 实例编写一个瘦应用程序。应用程序本身执行初始内容请求,获取清单,获取内容,然后从磁盘本地呈现到浏览器实例。我们坚持解析与当前 HTML5 规范格式相同的清单,希望有一天我们可以突破应用程序并只使用 RAW BROWSER POWER(R)(TM)!!1!跨度>

标签: ipad html


【解决方案1】:

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

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 上完成。

【讨论】:

  • 总而言之,这是不可能的(至少目前是这样)。对于我的特定项目,它看起来像是围绕 UIWebView 编写一个瘦应用程序,将内容拉到 iPad 的文件系统然后显示它。
【解决方案2】:

数据库有 5 mb 的限制,之后会提示用户允许多 20 mb 左右。硬限制是 20-25 mb,之后您不能再向本地存储中插入任何记录。

【讨论】:

  • 对于 webStorage 和 WebSQL,限制是特定于平台和浏览器的。
猜你喜欢
  • 1970-01-01
  • 2013-01-23
  • 2011-10-08
  • 2011-07-10
  • 2012-03-06
  • 2014-07-10
  • 1970-01-01
  • 1970-01-01
  • 2019-02-06
相关资源
最近更新 更多