У меня есть некоторый код WebSQL, работающий в автономном мобильном приложении, которое работает в iOS 4.3.3 и настольном Safari OK.
INVALID_STATE_ERROR: DOM Exception 11
разочаровывающе непрозрачен в том смысле, что может ссылаться на очень много разных вещей, но я подозреваю, что проблема WebKit, на которую вы ссылаетесь, имеет ответ в вашем случае. Во всяком случае, на то, что может помочь ...
FWIW в моем коде Я инициализирую соединение с базой данных через "своего рода" фабрику, и это, кажется, работает нормально, сохраняясь в моем приложении (на самом деле, я использую соединение с базой данных "фабрика" плюс a второй объект-прототип, который инкапсулирует весь мой SQL, немного похоже на Javascript DAO, но для краткости я его опущу).
Я создал суть с примером «фабрики» (это экстраполяция части моего производственного кода, поэтому извиняюсь за любые упущения): http://gist.github.com/1044759
Этот код инициализирует подключение к вашей базе данных и создаст соответствующие таблицы, если они еще не существуют.
Вот пример сценария (возможно, для $(document).ready
), который установит соединение с БД:
// Initialise local db
var mydb = new DbConnection().getDb();
Чтобы использовать соединение, вы просто вызываете свой обычный транзакционный Javascript, используя mydb
в качестве бита базы данных, т.е.
mydb.transaction(function(transaction){
transaction.executeSql(...
Надеюсь, это поможет.