有没有办法在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