我一直试图在数据库中放置250万随机生成的人。 在代码中,我创建了一批2.500个用户,然后提交了事务。
chancejs库生成一个guid,但并不总是唯一的。因此,只要它不是唯一的,我希望它将错误放在一个数组中并忽略.add&无论如何都要提交交易。
var transaction = db.connection.transaction(["users"], "readwrite");
var request = objectStore.add(newuser);
for (i=0;i<batchsize;i++){
request.onerror = function(event) {
event.cancelBubble = true;
// Some kind of CONTINUE event here
}
}
交易有效,我可以向所有用户填写我的数据库。 将createIndex'bsn'置于唯一状态会使它失败。
var index = objectStore.createIndex("bsn", "bsn", { unique: true });
答案 0 :(得分:2)
当请求失败时,事件的默认操作是中止其rransaction。如果您不想要这种行为,请在请求或事务的onerror处理程序上调用event.preventDefault()。
答案 1 :(得分:1)
调用event.preventDefault()
将阻止事务中止,但事件仍将传播到transaction.onerror处理程序,这可能会让人感到困惑。如果您想要删除该消息,只需致电event.stopPropagation()
即可。可以找到更多信息和示例代码in this answer。