有沒有辦法在IndexedDB中獲得最上一行?我找不到任何東西。如何獲得IndexedDB的前1行
2
A
回答
0
因爲我無法找到任何東西,所以這是我所已到位現在,它對我的目的非常有用。這是一種黑客,我對它不滿意,但是,嘿,現在,這是可以做到的。
我只是存儲一行,因爲我需要在該數據庫中。在閱讀後,我得到所有行並執行我需要的操作,這只是一行。當我插入一個新行時,我只是清除整個數據庫,這又是一行,並在其中插入一個新行。
@spiderdevil,我剛剛看到了你的答案,我不確定我是否能夠嘗試中止交易,但如果它確實適用於其他人,請在評論中分享。
0
排序的黑客,但我相信,如果你不在結果對象上調用continue()它只會處理第一個項目。
下面是使用遊標查詢並僅處理一個結果的快速示例。
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
您可以使用Transaction.abort()
例如,如果使用@肖恩的例子
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. 如何獲得前20行?
- 2. 如何獲得前n行
- 3. 如何獲得多行,當值> 1
- 4. 如何獲得總共1次多行
- 5. 如何獲得 '\ X01' 1
- 6. 如何獲得1個JFrame?
- 7. 如何串獲得「STS」:1" 獲得價值1
- 8. 如何從查詢中獲得前1條記錄
- 9. 給定一個時間戳,如何獲得1個月前
- 10. 如何獲得前元素
- 11. 如何獲得前5
- 12. 如何獲得1年的Timespan?
- 13. 得到IndexedDB的指數
- 14. 獲得前三行:與第
- 15. 如何在第1行獲得正確的輸入格式libsvm
- 16. 如何獲得1行的上限和下限?
- 17. 獲得的結果,如果END_DATE爲1個月當月之前
- 18. 獲得WeekdayName + 1
- 19. 如何從indexedDB獲取對象庫?
- 20. 如何獲得日期 - 1年vba
- 21. 如何從1點獲得X和Y?
- 22. 如何使用grep獲得匹配[1]?
- 23. post_type如何獲得1標題
- 24. SharpSVN - 如何獲得以前的修訂?
- 25. 如何獲得MySQL的前五名
- 26. 如何獲得android的當前佈局?
- 27. 如何獲得與前導零的
- 28. red5:我如何獲得當前的IConnection?
- 29. 如何獲得目前插頁的CGRect
- 30. 如何獲得當前的HDD類型?
我的確做到了這一點,而且目前工作正常,但是當您嘗試關閉Chrome附加組件(我需要在附加組件中使用此附加組件)時,整個Chrome瀏覽器都會崩潰。 – strider 2012-01-31 17:35:44
Chrome有一些使用IndexedDB會導致整個瀏覽器崩潰的問題。我曾向Chrome團隊[提交缺陷](http://code.google.com/p/chromium/issues/detail?id=108871),我相信它現在已經修復(至少在dev版本中) 。在開發版或金絲雀版Chrome或Firefox中再次嘗試您的代碼,因爲它似乎始終有效。 – Shawn 2012-02-02 04:37:43