【问题标题】:HTML5 readTransaction not supported on iPad (iOS 3.2)?iPad(iOS 3.2)不支持 HTML5 readTransaction?
【发布时间】: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 或其他任何地方都找不到有关此差异的任何参考。

【问题讨论】:

    标签: sql ipad html ios mobile-safari


    【解决方案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 的发布版本中没有立即提供主干中的提交。无论如何,我希望我给出的指点有所帮助。
      猜你喜欢
      • 2011-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-26
      • 1970-01-01
      • 2014-06-14
      相关资源
      最近更新 更多