Offline Strategien für HTML5 (Web) Applikationen
Über mich
Stephan Hochdörfer, bitExpert AG
Head of IT
PHP Entwickler seit 1999
S.Hochdoerfer@bitExpert.de
@shochdoerfer
Offline Strategien für HTML5 (Web) Applikationen
Web Storage: 2 Möglichkeiten
localStorage vs. sessionStorage
Offline Strategien für HTML5 (Web) Applikationen
Web Storage: localStorage
var myVar = 123;
var myObj = {name: "Stephan"};
// write scalar value to localStorage
localStorage.setItem('myVar', myVar);
// read scalar value from localStorage
myVar = localStorage.getItem('myVar');
// write object to localStorage
localStorage.setItem('myObj', JSON.stringify(myObj));
// read object from localStorage
myObj = JSON.parse(localStorage.getItem('myObj'));
Offline Strategien für HTML5 (Web) Applikationen
Web Storage: localStorage
var myVar = 123;
var myObj = {name: "Stephan"};
// write scalar value to localStorage
localStorage['myVar'] = myVar;
// read scalar value from localStorage
myVar = localStorage['myVar'];
// write object to localStorage
localStorage['myObj'] = JSON.stringify(myObj);
// read object from localStorage
myObj = JSON.parse(localStorage['myObj']);
Offline Strategien für HTML5 (Web) Applikationen
Web Storage: sessionStorage
var myVar = 123;
var myObj = {name: "Stephan"};
// write scalar value to sessionStorage
sessionStorage['myVar'] = myVar;
// read scalar value from sessionStorage
myVar = sessionStorage['myVar'];
// write object to sessionStorage
sessionStorage['myObj'] = JSON.stringify(myObj);
// read object from sessionStorage
myObj = JSON.parse(sessionStorage['myObj']);
Offline Strategien für HTML5 (Web) Applikationen
IndexedDB – Daten hinzufügen
indexedDB.addTodo = function() {
var db = todoDB.indexedDB.db;
var trans = db.transaction(['todo'],
IDBTransaction.READ_WRITE);
var store = trans.objectStore('todo');
var data = {
"text": todoText,
"timeStamp": new Date().getTime()
};
var request = store.put(data);
request.onsuccess = function(e) {
todoDB.indexedDB.getAllTodoItems();
};
request.onerror = function(e) {
console.log("Failed adding items due to: ", e);
};
};
Offline Strategien für HTML5 (Web) Applikationen
IndexedDB – Daten auslesen
function show() {
var request = window.indexedDB.open("todos");
request.onsuccess = function(event) {
var db = todoDB.indexedDB.db;
var trans = db.transaction(["todo"],
IDBTransaction.READ_ONLY);
var request = trans.objectStore("todo").openCursor();
var ul = document.createElement("ul");
request.onsuccess = function(event) {
var cursor = request.result || event.result;
// If cursor is null, enumeration completed
if(!cursor) {
document.getElementById("todos").appendChild(ul);
return;
}
var li = document.createElement("li");
li.textContent = cursor.value.text;
ul.appendChild(li);
cursor.continue();
}}}