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?的主要内容,如果未能解决你的问题,请参考以下文章
我的 Web 应用程序是不是仍应支持 iOS 3.2 上的 Safari 4.0.4?