我有一个使用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)iPad 3.2的User-Agent字符串如下:

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)

这就是为iPad 3.2提供支持Safari 4.0.4的WebKit引擎不支持readTransaction的原因。

关于sql - iPad(iOS 3.2)不支持HTML5 readTransaction?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3809229/

10-09 14:08