Я пытаюсь настроить хранилище indexeddb для использования в chrome. Но я получаю Uncaught TypeError
, когда пытаюсь создать транзакцию READ_WRITE
.Uncaught TypeError: введите ошибку в Chrome при использовании indexedDB
Я не смог найти хорошую, актуальную информацию об использовании webkitIDB. Поэтому я в основном летаю здесь. Любые идеи, что я сделал неправильно? Есть ли там хорошие вещи, которые я пропустил?
Установка:
function OfflineStorage() {
this.saveJSONString = __bind(this.saveJSONString, this);
var request,
_this = this;
this.dbkeyRange = window.webkitIDBKeyRange;
this.dbTransaction = window.webkitIDBTransaction;
this.db = window.webkitIndexedDB;
request = this.db.open("lucidFrog");
request.onsuccess = function(e) {
_this.db = e.target.result;
return _this.setupDB(); //setupDB() ensures the objectStores have been created.
};
}
Сохранить Функция:
OfflineStorage.prototype.saveJSONString = function(objectStore, json_string, obj_id) {
var request, store, transaction;
//PROBLEM AREA, gives "Uncaught TypeError: Type error"
transaction = this.db.transaction([objectStore], this.dbTransaction.READ_WRITE, 0);
////////////////////
store = transaction.objectStore(objectStore);
request = store.put({
"json": json_string,
"id": obj_id
});
request.onsuccess = function(e) {
return console.log("YYYYYYEEEEEAAAAAHHHHHH!!!");
};
};
Запрашиваемый objectStore
был создан, и подтвердил, что this.dbTransaction
определяется.
Мне нравится думать о себе как о квалифицированном специалисте IndexedDB, и я буду рад помочь. Во-первых, является ли 'objectStore' var вы передаете строку или ссылку на фактическое хранилище объектов, такое как объект, возвращенный при создании объектаStore? – buley
'objectStore' передается как строка. –