2010-09-28 95 views
2

我有一個使用websql存儲數據的HTML5應用程序。iPad(iOS 3.2)不支持HTML5 readTransaction?

在可能的情況下,我對只讀SELECT查詢使用readTransaction()方法,對INSERT/UPDATE/DELETE查詢使用transaction()方法。

我不確定使用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)的Safari 4.0.4 iPad版於2010年4月發佈,第三(見http://en.wikipedia.org/wiki/Safari_version_history

3)readTransaction是致力於爲WebKit的軀幹上2009年9月,第9(見http://trac.webkit.org/changeset/48227

這就是爲什麼支持iPad 3.2的Safari 4.0.4的WebKit引擎不支持readTransaction

0

不確定我在這裏遵循你的邏輯......你說支持readTransaction已於15個月前(09年9月)提交給存儲庫;而iOS3.2中的Safari版本是在8個月前(4月10日)發佈的?

除非我誤解了你的意思,這意味着在Safari 4.0.4發佈的時候,readTransaction支持已經在主幹中保留了7個月。

09年9月10日,也許你會感到困惑嗎?

+0

我的不好,你是對的。我被日期誤導了。所以我猜想,在發佈版本的Safari中沒有立即提供主幹中的提交。無論如何,我希望我給的指針有幫助。 – 2010-12-07 07:07:47