Ale*_*nov 5 javascript indexeddb
我有这个简单的示例代码:
var request = mozIndexedDB.open('MyTestDatabase');
request.onsuccess = function(event){
var db = event.target.result;
var request = db.setVersion('1.0');
request.onsuccess = function(event){
console.log("Success version.");
if(!db.objectStoreNames.contains('customers')){
console.log("Creating objectStore");
db.createObjectStore('customers', {keyPath: 'ssn'});
}
var transaction = db.transaction([], IDBTransaction.READ_WRITE, 2000);
transaction.oncomplete = function(){
console.log("Success transaction");
var objectStore = transaction.objectStore('customers');
};
};
};
Run Code Online (Sandbox Code Playgroud)
我得到这个:
在不允许突变的数据库上尝试了突变操作。”代码:“ 6
在线
var objectStore = transaction.objectStore('customers');
Run Code Online (Sandbox Code Playgroud)
不知道-我做错了什么?
我想我找到了答案。我不应该在 oncomplete 中访问 objectStore。我只需要在进行新交易后进行即可。正确的方法是这样的:
var transaction = db.transaction([], IDBTransaction.READ_WRITE, 2000);
transaction.oncomplete = function(){
console.log("Success transaction");
};
var objectStore = transaction.objectStore('customers');
Run Code Online (Sandbox Code Playgroud)
顺便说一句,这正是 Mozilla 的 MDN 所显示的。https://developer.mozilla.org/en/IndexedDB/Using_IndexedDB#section_10
| 归档时间: |
|
| 查看次数: |
13611 次 |
| 最近记录: |