indexedDB tiene un spec diciendo que puede acceder a una base de datos indexada de forma síncrona, pero aún no se ha implementado.¿Cómo puedo acceder indexedDB sincrónicamente?
Me preguntaba si hay una manera para que sea síncrona manualmente,
Mi JavaScript parece a esto,
var trans = databaseAsync.transaction(["mapTile"], IDBTransaction.READ_WRITE);
var store = trans.objectStore("mapTile");
var keyRange = IDBKeyRange.bound(evt.data[0], evt.data[0]);
var cursorRequest = store.openCursor(keyRange);
// can you put some kind of wait in here?
cursorRequest.onsuccess = function(e)
{
var result = e.target.result;
if(!!result == false)
{
}
}
Así se puede poner algo ahí para hacer que esperar hasta que el onSuccess método ha sido llamado antes de continuar?
La razón por la que quiero hacer esto es el código anterior se envuelve dentro de este método,
dojo.extend(esri.layers.ArcGISTiledMapServiceLayer, {
getTileUrl : function(level, row, col)
{
// blah
return url;
}
lo que es una capa de mosaico ESRI (que cargará azulejos sobre un mapa en mi página web), y ese método necesita devolver la url directamente para un mosaico en particular. O bien será una URL para cargar la imagen de si no se almacena en la base de datos ya, o esto,
data:image;base64,*BASE64DATA*
Dónde BASE64DATA son los datos de la base de datos en caché si previamente.
Anteriormente estaba usando localStorage para esto, que funciona sincrónicamente, pero que tiene un límite de 5MB, así que pensé que podría experimentar con indexedDB.
Por favor [no agregue firmas o eslóganes a sus publicaciones] (http://stackoverflow.com/faq#signatures). – meagar