iPad(iOS 3.2)不支持 HTML5 readTransaction?

Posted

技术标签:

【中文标题】iPad(iOS 3.2)不支持 HTML5 readTransaction?【英文标题】:HTML5 readTransaction not supported on iPad (iOS 3.2)? 【发布时间】:2010-09-28 02:13:16 【问题描述】:

我有一个使用 websql 存储数据的 html5 应用程序。

在可能的情况下,我将 readTransaction() 方法用于只读 SELECT 查询,将 transaction() 方法用于 INSERT/UPDATE/DELETE 查询。

我不确定使用 readTransaction() 是否有性能优势,但这似乎是正确的做法。

该应用在桌面版 Safari、Chrome、iPhone (ios4) 上运行良好……但在 iPad (iOS 3.2) 上却不行。当我启用调试控制台(设置 -> Safari -> 开发人员 -> 调试控制台)时,我可以看到它在抱怨没有 readTransaction() 方法。

谁能确认 iPad 是否只支持 HTML5 数据库 API 的一个子集?显然,简单的解决方法是将所有 readTransaction() 调用更改为 transaction(),但我只是想知道是否有人知道为什么 readTransaction() 在 iPad 上不起作用?

我在 developer.apple.com 或其他任何地方都找不到有关此差异的任何参考。

【问题讨论】:

【参考方案1】:

为了得到确认,你必须交叉几个信息:

1) iPad 3.2 的用户代理字符串如下:

Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10

2) 适用于 iPad 的 Safari 4.0.4 于 2010 年 4 月 3 日发布(见http://en.wikipedia.org/wiki/Safari_version_history)

3) readTransaction 于 2009 年 9 月 9 日提交到 WebKit 主干(见 http://trac.webkit.org/changeset/48227)

这就是为什么支持 Safari 4.0.4 for iPad 3.2 的 WebKit 引擎不支持readTransaction

【讨论】:

【参考方案2】:

不确定我是否遵循您的逻辑...您是说对 readTransaction 的支持已在 15 个月前(9 月 9 日)提交到存储库;并且 iOS3.2 的 Safari 版本是 8 个月前(4 月 10 日)发布的?

除非我误解了你,否则这意味着 readTransaction 支持在 Safari 4.0.4 发布时已经存在 7 个月了。

您是否将 9 月 9 日和 9 月 10 日混淆了?

【讨论】:

我的错,你是对的。我被日期误导了。所以我猜在 Safari 的发布版本中没有立即提供主干中的提交。无论如何,我希望我给出的指点有所帮助。

以上是关于iPad(iOS 3.2)不支持 HTML5 readTransaction?的主要内容,如果未能解决你的问题,请参考以下文章

iOS iPad 上未显示 HTML5 视频播放按钮

我的 Web 应用程序是不是仍应支持 iOS 3.2 上的 Safari 4.0.4?

嵌入的 YouTube 视频无法在 iPad (iOS 7) 上播放,而 HTML5 搜索输入可见

目前,支持Html5的浏览器都有哪些

HTML5 地理位置 - 在 iOS 上无法一直工作

检测 iOS 浏览器 (Iphone,Ipod,Ipad) 将 DIV 从 FLASH 更改为 HTML5