Follow along with the video below to see how to install our site as a web app on your home screen.
Anmerkung: This feature currently requires accessing the site using the built-in Safari browser.
function onDeviceReadySuccess() {
initDatabase();
loadItems();
}
function loadItems() {
initCategory();
alert("loadItems");
loadCategory();
}
function initCategory() {
alert("initCategory");
db.transaction(selectCategory, errorSelect);
function selectCategory(tx) {
tx.executeSql('SELECT * FROM category WHERE parentid = ' + currentCategory, [], successSelect, errorSelect);
}
function errorSelect(err) {
alert("Fehler beim Laden der Kategorien: " + err.code);
}
function successSelect(tx, results) {
alert("successSelect");
var length = results.rows.length;
arrayCategory = new Array(length);
for (var i = 0; i < length; i++) {
var id = results.rows.item(i).id;
var name = results.rows.item(i).name;
var parentid = results.rows.item(i).parentid;
arrayCategory[i] = new Category(id, name, parentid);
}
};
}
function onDeviceReadySuccess() {
initDatabase();
loadItems();
}
Genau das ist das, was wir mit "asynchron" meinen. Der successSelect-Callback wird einfach irgendwann ausgeführt, wenn die DB fertig ist. Du musst alles, was von dem successSelect abhängig ist auch erst dort ausführen:Zuerst wird "initCategory", "loadItems", "loadCategory" und dann successSelect ausgeben.
function loadItems() {
initCategory();
}
function initCategory() {
alert("initCategory");
db.transaction(selectCategory, errorSelect);
function selectCategory(tx) {
tx.executeSql('SELECT * FROM category WHERE parentid = ' + currentCategory, [], successSelect, errorSelect);
}
function errorSelect(err) {
alert("Fehler beim Laden der Kategorien: " + err.code);
}
function successSelect(tx, results) {
alert("successSelect");
var length = results.rows.length;
arrayCategory = new Array(length);
for (var i = 0; i < length; i++) {
var id = results.rows.item(i).id;
var name = results.rows.item(i).name;
var parentid = results.rows.item(i).parentid;
arrayCategory[i] = new Category(id, name, parentid);
}
alert("loadItems");
loadCategory();
};
}
function loadItems() {
initCategory(function(){
alert("loadItems");
loadCategory();
});
}
function initCategory(callback) {
alert("initCategory");
db.transaction(selectCategory, errorSelect);
function selectCategory(tx) {
tx.executeSql('SELECT * FROM category WHERE parentid = ' + currentCategory, [], successSelect, errorSelect);
}
function errorSelect(err) {
alert("Fehler beim Laden der Kategorien: " + err.code);
}
function successSelect(tx, results) {
alert("successSelect");
var length = results.rows.length;
arrayCategory = new Array(length);
for (var i = 0; i < length; i++) {
var id = results.rows.item(i).id;
var name = results.rows.item(i).name;
var parentid = results.rows.item(i).parentid;
arrayCategory[i] = new Category(id, name, parentid);
}
callback();
};
}