molily: Webkit: database-objekt - Logik hinter der Syntax?

Beitrag lesen

Hallo,

Die Methode transaction des DB-Objekts bekommt eine Funktion als Wert?

Ja, als Callback für die Transaktion.

tx ist was? Die Transaktion selbst?

Ja, ein Objekt, das die Transaktion repräsentiert.

Warum geht dann db.transaction(executeSql()); nicht?

Weil dieser Code etwas anderes tun würde. Es wäre kein Zugriff auf das Transaktionsobjekt möglich. executeSql würde ausgeführt und dessen Rückgabewert an db.transaction übergeben. Das wäre Unsinn. Man will ja eine Transaktion erzeugen und mit dieser Queries ausführen. Denkbar wäre höchstens:

var tx = db.transaction();
tx.executeSql(...);

Aber wie gesagt arbeitet man stattdessen asynchron mit Callbacks, damit die Zeit zwischen diesen Befehlen anderweitig genutzt werden kann. executeSql übergibt man übrigens auch eine Callback-Funktion.

Ich kriege irgendwie nicht Logik nicht in den Kopf.

Die Logik ist dieselbe wie überall sonst in JavaScript, wo asynchron mit Callback- oder Event-Handler-Funktionen gearbeitet wird.

Mathias