IndexedDB имеет spec, говорящий, что вы можете получить доступ к индексированной базе данных синхронно, но она еще не реализована.Как я могу синхронно обращаться к indexedDB?
мне было просто интересно, если есть способ сделать это синхронные вручную,
Мой JavaScript выглядит так,
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)
{
}
}
Так что вы можете положить что-то там, чтобы не ждать, пока OnSuccess метод был вызван до продолжения?
Причины, почему я хочу сделать это код выше обернут внутри этого метода,
dojo.extend(esri.layers.ArcGISTiledMapServiceLayer, {
getTileUrl : function(level, row, col)
{
// blah
return url;
}
Так это мозаичный слой ESRI (который будет загружать плитки на карту на моей веб-странице), и этот метод должен немедленно вернуть URL-адрес для определенной плитки. Это будет либо URL, чтобы загрузить изображение из, если не кэшируются в базе данных уже, или это,
data:image;base64,*BASE64DATA*
Где BASE64DATA это данные из базы данных, если в кэше ранее.
Ранее я использовал локальную хранилище, которая работает синхронно, но имеет ограничение 5 МБ, поэтому я решил поэкспериментировать с indexedDB.
Пожалуйста, [не добавляйте подписи или метки в свои сообщения] (http://stackoverflow.com/faq#signatures). – meagar