У меня следующая проблема при передаче результата SQL-запроса в глобальную переменную.
Я использую этот очень простой источник
<pre>
var aGlobal = new Array();</p>
<p>db.transaction( function( tx ) {
tx.executeSql( 'SELECT * FROM AddressBook', [], getSQLValues )
});</p>
<p>function getSQLValues(tx, SQLResultSet) {
for (var i=0; i < SQLResultSet.rows.length; i++) {
aGlobal[i] = SQLResultSet.rows.item(i);
}
}</p>
<p>console.log(aGlobal.length); // 0
alert( aGlobal.length ); // no Values get passed WITHOUT this alert!
console.log(aGlobal.length); // equals SQLResultSet.rows.length</p>
<p>for (var i=0; i < aGlobal.length; i++) {
console.log(aGlobal[i]['id']+' - '+aGlobal[i]['AddrValues']); // can see the values
}
БД существует,
БД содержит действительные данные,
БД локальная,
HTML-файл является локальным,
локальный HTML-файл открывается локально в Safari.
Строки SQLResultSet, которые хранятся в глобальном массиве, могут быть доступны только последующему сценарию после появления предупреждения. Без предупреждения я вижу содержимое глобального массива при проверке консоли.
Любые предложения о том, как достичь содержимого глобального массива без предупреждения?
Кстати, предупреждение также может просто читать
alert('blah');
Большое спасибо заранее за любой полезный ответ,
Karl