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;
}
だから、それは(私のWebページ上の地図上にタイルをロードします)ESRIタイル層であり、そのメソッドは特定のタイルのURLをすぐに返す必要があります。それは既にデータベースにキャッシュされ、またはこのされていない場合から画像をロードするためのURLのどちらかになります以前にキャッシュされた場合BASE64DATAは、データベースからのデータである
data:image;base64,*BASE64DATA*
。
私はこれまでにlocalStorageを使用していましたが、これは同期的に動作しますが、5MBの制限がありますので、indexedDBを試してみると思いました。
あなたの投稿に署名やタグラインを追加しないでください(http://stackoverflow.com/faq#signatures)。 – meagar