4

IndexedDB に次のコードがあります。

var request = objectStore.add({ entryType: entryType, entryDate: t});

ここで、追加されたばかりのこのレコードのキーを知りたいのですが、どうすればよいですか?

この記事とこのコードを見つけました:

var data = {"bookName" : "Name", "price" : 100, "rating":"good"};
var request = objectStore.add(data);
request.onsuccess = function(event){
    document.write("Saved with id ", event.result)
    var key = event.result;
};

これは私にはうまくいきません - キーは未定義として表示されます。ここで基本的な何かが欠けていると思います!

4

4 に答える 4

7

このコードを実行します

var data = {"bookName" : "Name", "price" : 100, "rating":"good"};
var request = objectStore.add(data);
request.onsuccess = function(event){
    document.write("Saved with id ", event.result)
    var key = event.target.result;
};

このコードが最後に挿入されたレコードのキーを取得するために機能することを願っています

于 2014-06-12T07:21:11.517 に答える
4

仕様は、開発者向けではなく、ユーザー エージェント向けに書かれています。だから紛らわしい。キー ジェネレータは、ユーザー エージェントによって提供されます。

ハンドラーeventが受け取るオブジェクトにはonsuccess常にevent.target.result. お探しの鍵です。autoIncrement を true に設定すると、キーを指定しない場合、キーは自動生成されます。

次のように、手順 8:に記載されています。

  1. このアルゴリズムの結果が重要です。
于 2012-12-29T04:04:48.890 に答える
0

ここでの秘訣は、必要なものにたどり着くまで、フレーズを繰り返し使用して検索する方法を知ることです。IndexedDB について聞いたことはありませんが、必要なものは見つかったようです。

「IndexedDB」を検索エンジンに入れて、これを見つけまし。それで「キージェネレーター」というフレーズが出てきたので、それも検索して、これこれにたどり着きました。

StackOverflow リンクでは、もちろん JavaScript で生成できる UUID の使用について説明しています。最後のリンクには、すぐに使用できるようにするための例が含まれているようです。

于 2012-12-29T00:48:56.373 に答える