我怎么知道indexedDB请求循环是否已经结束
How can I know if an indexedDB request loop has ended or not?
我正在使用indexedDB来存储一些脱机数据。在我的代码中,有一个向存储对象插入值的循环:
function Insert(){
for(var i in list)
InsertList(list[i]);
alert("successful");
}
function InsertList(str){
var trans = LocalDB.indexedDB.db.transaction(StoreList, IDBTransaction.READ_WRITE);
var store = trans.objectStore(StoreList);
var data = {
"item": str};
var request = store.put(data);
request.onsuccess = function (e) { };
request.onerror = function (e) { alert("Error inserting"); };
}
警报消息将在循环执行之前显示,如果在我关闭警报消息之后立即刷新或关闭页面,则由于循环中断,某些值不会插入列表中。那么,我如何才能知道循环已经结束,然后给出一个成功的消息呢?谢谢
索引器ddb API是异步的。这意味着只有当某件事在成功中使用回调方法结束时,您才能获得反馈。
在您的情况下,我会以不同的方式工作,并将所有内容插入一个事务中。当事务完成时,您会得到一个回调。如果调用了它,您可以确保所有内容都已保存并且插入已完成。
function Insert(){
var trans = LocalDB.indexedDB.db.transaction(StoreList, IDBTransaction.READ_WRITE);
var store = trans.objectStore(StoreList);
for(var i in list)
{
var data = { "item": list[i]};
var request = store.put(data);
request.onsuccess = function (e) { };
request.onerror = function (e) { alert("Error inserting"); };
}
trans.oncomplete = function ()
{
alert("successful");
}
}
相关文章:
- 在源节点上调用 stop() 是否会触发已结束的事件
- 当父事件结束时,子侦听器是否已销毁
- 检查开始日期是否小于结束日期(不使用任何pluguin)
- 检查日期是否大于一个月的第一个周结束日期
- jQuery - 检测 CSS 动画是否结束
- 是否有一种自动方法来确定(或查找)库的生命周期结束/支持终止通知
- 检查在捐赠开始日期和结束日期之间是否已有预留时间
- res.end() 是否结束了 async.waterfall
- 检查给定的开始日期和结束日期之间是否有可用的房间时间
- JavaScript -- Unity 检查动画是否已结束
- 如何显示/隐藏范围,具体取决于本地时间是否等于“开始日期”和“结束日期”Jquery之间
- 检测触摸开始/触摸结束是否取消了滚动(动量滚动)
- 无论是否有请求的结束事件;这就是区别
- 如果没有jquery,我需要确定鼠标是否在一个元素上,而不是确定它何时结束(以防它没有移动来触发onmouseover)
- 我怎么知道indexedDB请求循环是否已经结束
- 是否可以暂停while循环直到动画结束
- 在JS中是否可以定义regexp,当在输入结束时对给定文本进行测试时,该regexp会给出false
- 检查输入是否以特定字符结束
- 如何确定是否在父元素的开始或结束存在文本?HTML DOM &JavaScript
- 如何检查当前URL是否以特定模式结束