Skip to content

Instantly share code, notes, and snippets.

@SirPepe
Created January 21, 2013 13:51
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save SirPepe/4586195 to your computer and use it in GitHub Desktop.
Save SirPepe/4586195 to your computer and use it in GitHub Desktop.
// Datenbank anlegen
var request = indexedDB.open('html5', 1);
// Änderungs/Erzeugungs-Event
request.onupgradeneeded = function(){
console.log('Datenbank angelegt');
var db = this.result;
if(!db.objectStoreNames.contains('features')){
store = db.createObjectStore('features', {
keyPath: 'key',
autoIncrement: true
});
}
};
// Öffnungs-Event (feuert nach upgradeneeded)
request.onsuccess = function(){
console.log('Datenbank geöffnet');
var db = this.result;
// Zu speichernder Datensatz
var item = { title: 'Web Storage' };
// Speicher-Transaktion
var trans = db.transaction(['features'], 'readwrite');
var store = trans.objectStore('features')
var request = store.put(item); // `item` in dem Store ablegen
// Erfolgs-Event
request.onsuccess = function(evt){
console.log('Eintrag ' + evt.target.result + ' gespeichert');
// Auslese-Transaktion
var trans = db.transaction(['features'], 'readonly');
var store = trans.objectStore('features');
// Cursor für alle Einträge von 0 bis zum Ende
var range = IDBKeyRange.lowerBound(0);
var cursorRequest = store.openCursor(range);
// Wird für jeden gefundenen Datensatz aufgerufen... und einmal extra
cursorRequest.onsuccess = function(evt){
var result = evt.target.result;
if(result){
console.log('Eintrag gefunden:', result.value);
// Eintrag wieder löschen
var trans = db.transaction(['features'], 'readwrite');
var store = trans.objectStore('features');
var key = result.value.key;
var request = store.delete(key);
request.onsuccess = function(evt){
console.log('Eintrag ' + key + ' gelöscht');
}
// Cursor zum nächsten Eintrag bewegen
result.continue();
}
};
};
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment