Sono un paio d'anni di ritardo, ma considerando che la questione non è mai stato risposto direttamente, ho pensato di gettare i miei due centesimi in, nonché ass Aggiungi qualche suggerimento!
Innanzitutto, se stai leggendo questo, probabilmente non dovresti usare WebSQL. È stato deprecated in favore di IndexedDB, che a questo punto è l'unico database sulla traccia degli standard W3C.
Se, per qualsiasi motivo, si intende utilizzare WebSQL e si può vivere senza i vantaggi offerti dalle API asincrone (alcune delle quali sono menzionate nella risposta di John Fowler), allora si dovrebbe sapere che le sue specifiche sono anche definisce un synchronous API.
Quindi sì, c'è un modo per eseguire istruzioni in WebSQL in modo sincrono, a condizione che i browser che state sviluppando abbiano implementato l'API sincrona.
Se non ti dispiace occuparti di un'interfaccia asincrona che è tanto semplice quanto sincrona, controlla BakedGoods.
Con esso, l'esecuzione di query è semplice come:
bakedGoods.getAll({
filter: "valueObj.holdingType === 'month'",
storageTypes: ["webSQL"],
//Contains database configuration data and operation preferences
options: optionsObj,
complete: function(byStorageTypeResultDataObj, byStorageTypeErrorObj){}
});
la sua semplice interfaccia e il supporto impianto di stoccaggio senza pari viene al costo di mancanza di supporto per alcune configurazioni specifiche degli impianti di stoccaggio. Ad esempio, non supporta la conduzione delle operazioni di archiviazione nelle tabelle WebSQL con chiavi primarie a più colonne.
Quindi, se si fa un uso intenso di questi tipi di funzionalità, si potrebbe voler guardare altrove.
Oh, e per garantire la massima trasparenza, BakedGoods è gestito da chi è veramente :).
@ Michael Per fare una domanda, utilizzare il pulsante "Chiedi domanda". –