我正在an IndexedDB article完成工作,然后就说:
这可能听起来令人困惑,但是......
他们有这个片段:
var db = event.target.result;
objectStore.transaction.oncomplete = function(event) {
var customerObjectStore = db.transaction("customers", "readwrite").objectStore("customers");
所以我对两个不同的交易感到困惑。第一个是在不使用括号的情况下调用的,第二个是使用括号。第一个是objectStore对象上的事务,第二个是db对象上的事务。
问:他们被称为交易'这是巧合吗? 问:这两种方法都是吗?答案 0 :(得分:2)
objectStore.transaction.oncomplete
Objectstore是已打开的对象库(通过db.transaction)的属性。
它添加了一个oncomplete事件,所以当事务完成后它可以做其他事情,在这种情况下打开一个新的事务(可能在不同的商店或其他东西)
第二个(db.transaction
)是db上打开新事务的方法。
所以代码差异
var trans = db.transaction("store1", "readonly"); // creates a transaction
store = trans.objectStore("store1"); // opens the objectStore on the just created transaction
// store.transaction is the same as trans, it returns the transaction to which the Objectstore belongs.
事务对象具有一些属性
希望能回答你的问题