Ich bin ein paar Jahre zu spät, aber das ist die Frage nie direkt beantwortet erwog, ich dachte, ich meine zwei Cent in werfen würde, aber auch ass einige Vorschläge hinzufügen!
Erstens, wenn Sie dies lesen, sollten Sie wahrscheinlich nicht WebSQL verwenden. Es wurde deprecated zugunsten von IndexedDB, die zu diesem Zeitpunkt die einzige Datenbank auf der W3C-Standards ist.
Wenn Sie, aus welchem Grund auch immer, WebSQL verwenden möchten, und ohne die Vorteile seiner asynchronen API leben können (einige davon sind in John Fowlers Antwort erwähnt), sollten Sie auch dessen Spezifikation kennen definiert eine synchronous API.
Also, es gibt eine Möglichkeit, Anweisungen in WebSQL synchron auszuführen, vorausgesetzt, die Browser, für die Sie entwickeln, haben die synchrone API implementiert.
Wenn es Ihnen nichts ausmacht, mit einer asynchronen Schnittstelle zu arbeiten, die so einfach wie eine synchrone ist, lesen Sie BakedGoods.
Damit Ihre Anfrage Ausführung ist so einfach wie:
bakedGoods.getAll({
filter: "valueObj.holdingType === 'month'",
storageTypes: ["webSQL"],
//Contains database configuration data and operation preferences
options: optionsObj,
complete: function(byStorageTypeResultDataObj, byStorageTypeErrorObj){}
});
Sein einfaches Interface und unübertroffene Lager Unterstützung auf Kosten des Mangels für einige Speicheranlagenspezifische Konfigurationen von Support kommt. Zum Beispiel unterstützt es nicht die Durchführung von Speicheroperationen in WebSQL-Tabellen mit mehrspaltigen Primärschlüsseln.
Also, wenn Sie diese Arten von Funktionen intensiv nutzen, möchten Sie vielleicht woanders suchen.
Oh, und aus Gründen der vollständigen Transparenz, wird BakedGoods von mir erhalten :).
@Michael Um eine Frage zu stellen, benutzen Sie die Schaltfläche "Frage stellen". –