IndexedDBの最上位の1行を取得する方法はありますか?私はそれのために何かを見つけることができませんでした。IndexedDBからトップ1の行を取得する方法
2
A
答えて
0
@使用するので、これは私が場所に入れていたたものである場合には、例えば)(
をTransaction.abortを使用することができます今、それは私の目的のために素晴らしい作品です。それはハックだと私はそれに満足していないが、ねえ、今のところ、これは行います。
私はそのデータベースに必要なものを1行だけ保存しています。読んで、私はすべての行を取得し、必要なアクションを実行します。これは1行だけです。私は新しい行を挿入するときに、データベース全体をクリアしています。もう1つの行だけが新しい行を挿入します。
@spiderdevil、私はちょうどあなたの答えを見て、私はトランザクションを中止しようとすることができるかどうかは分かりませんが、他の誰かのために働く場合は、コメントで共有してください。
0
ソートを並べ替えますが、結果オブジェクトでcontinue()を呼び出さないと、最初の項目だけが処理されると思います。
以下は、カーソルを使用してクエリを実行し、1つの結果のみを処理する簡単な例です。
var db = _IndexedDatabase;
var trans = db.transaction(["Sites"], IDBTransaction.READ_ONLY);
var store = trans.objectStore("Sites");
var request = store.openCursor();
request.onsuccess = function (e)
{
var result = e.target.result;
if(!!result == false) { return; }
// Use result.value some how
// Comment out this line to process the first item only
//result.continue();
};
1
私は何かを見つけることができませんでしたので、ショーンの例
var db = _IndexedDatabase;
var trans = db.transaction(["Sites"], IDBTransaction.READ_ONLY);
trans.onabort = function(event) {
console.log(event);
};
var store = trans.objectStore("Sites");
var request = store.openCursor();
request.onsuccess = function (ev)
{
var cursor = request.result || ev.target.result;
if(!!cursor == false)
return;
console.log(cursor.value);
try{
transaction.abort();
}catch(e){
console.log(e);
}
};
6
カーソルを使用し、.continue()を呼び出さないことはまったくハックではありません。それは意図された方法です。カーソルの主な点は、必要な情報だけを取得できることです。
のでtransaction.abortを(コールする必要はありません)
0
ただ、インデックスのGetメソッドを使用します。これは指定されたキーの最初のレコードを返しますが、ソートすることはできません。
関連する問題
- 1. トップn行を取得する方法
- 2. IndexedDbオブジェクトストアから複数のキー値を取得する方法
- 3. IndexedDBで1つずつ取得する方法
- 4. トップからCPU使用率を取得する方法は?
- 5. JavaScriptフィルタメソッドからトップ100オブジェクトを取得する方法
- 6. Angular2のIndexedDBからデータを取得
- 7. PDFTron - IndexedDBからデータを取得
- 8. indexedDBカーソルの結果を逆順で取得する方法
- 9. Ionic2 Storage(IndexedDB)でキーの長さを取得する方法
- 10. トップ3のパーティションの番号から債務者を取得する方法
- 11. 1行から別の行にクエリ値を取得する方法は?
- 12. iFrame内からトップURLを取得
- 13. データフレームからトップn企業を降順に取得する方法
- 14. ビットマップから1ピクセルからrgbカラーを取得する方法
- 15. 行をグループ化してトップ1を選択する方法
- 16. joinを使って1つの行からデータを取得する方法?
- 17. Html5 IndexedDB - キーで値を取得する
- 18. yiiのウィジェットから属性名を取得する方法1
- 19. ユーザから1つの番号を取得する方法
- 20. 1つのfetch_objectからヌルデータを取得する方法
- 21. GraphQLのリストからレコードを1つ取得する方法
- 22. サブビューの1つからUITableViewCellを取得する方法
- 23. SQLiteデータベースから1つのイメージを取得する方法
- 24. コントローラ内のデータバインディングから1アイテムを取得する方法は?
- 25. Angular2 ngForから1つの値を取得する方法
- 26. cakephpを使用してテーブルから1行だけを取得する方法
- 27. テーブルAから1行、テーブルBから複数の行を取得する方法
- 28. sqliteからレコードを1つずつ取得する方法は?
- 29. javascript jsonからインデックス0と1を取得する方法
- 30. indexeddbからデータを取り出してdivに表示する方法
私は正確にそれを行いましたが、その時点では機能しますが、Chromeアドオンを閉じるとき(アドオンでこれを使用する必要がありました)、Chromeブラウザ全体がクラッシュします。 – strider
Chromeには、IndexedDBを使用するとブラウザ全体がクラッシュするといういくつかの問題がありました。私はChromeチームに[不具合を提出しました](http://code.google.com/p/chromium/issues/detail?id=108871)、これは修正されていると思います(少なくとも開発版では) 。デベロッパー版やカナリアー版のChromeやFirefoxでコードを再試行してみてください。 – Shawn