Nach einer erfolgreichen Entwicklung mit IndexedDB in Chrome haben alle Schreibvorgänge einfach aufgehört zu arbeiten, ohne dass ein Fehler aufgetreten ist. Mit Safari ist alles in Ordnung.IndexedDB put/add in Chrome (für alle Websites) fehlgeschlagen
ist hier eine einfache Probe funktioniert nicht:
var db = null;
var req = indexedDB.open("TestDb", 1);
req.onsuccess = function(event) {
db = event.target.result;
db.onerror = function(event) {
error('Error: ', event.target.errorCode);
};
var os = db.transaction(['users'], "readwrite").objectStore('users');
req = os.put({id: 2, name: 'Benoît'});
req.onsuccess = function (event) {
console.log('Put success', event.target.result);
var os = db.transaction(['users'], "readwrite").objectStore('users');
var req = os.get(2);
req.onsuccess = function(event) {
console.log('Get success', event.target.result);
}
};
req.onerror = function (event) {
console.log('error', event);
};
};
req.onupgradeneeded = function(ev) {
console.log('db upgradeneeded', ev);
var db = ev.target.result, objectStore;
if (ev.oldVersion < 1) {
objectStore = db.createObjectStore('users', {keyPath: "id"});
objectStore.createIndex("name", "name", {unique: false});
}
};
in Konsolenprotokoll Resultierende:
Put Erfolg 2
tatsächlich bekommen Erfolg undefined
Weitere Debuggen, fügen onComplete und onabort Handler zur Transaktion: 'var tx db.transaction ([ 'Benutzer'], "Lese-Schreib") = os = tx.objectStore ('Benutzer'); tx.oncomplete = function() {console.log ('abgeschlossen'); }; tx.onabort = function() {console.log ('abgebrochen'); }; ' –
@theredled tritt der Fehler auf, wenn Sie nur eine Transaktion verwenden? – Josh
Danke Jungs, aber ich hatte nur ein Problem mit dem Speicherplatz. Sollte einen Fehler aber trotzdem werfen, ist es in Ordnung! – theredled