You can use localStorage like this:
// Retrieve your data from locaStorage
var saveData = JSON.parse(localStorage.saveData || null) || {};
// Store your data.
function saveStuff(obj) {
saveData.obj = obj;
// saveData.foo = foo;
saveData.time = new Date().getTime();
localStorage.saveData = JSON.stringify(saveData);
}
// Do something with your data.
function loadStuff() {
return saveData.obj || "default";
}
Update 2022:
Since people still view this here’s a more modern version. I like to wrap things like this in a service which gives you more control and type safety. You can easily add things like validation and errorhandling.
class LocalStorageService {
#keys = {
persons: 'persons',
};
constructor() {
this.storage = window.localStorage;
}
addPerson(person) {
const persons = this.getPersons();
persons.push(person);
this.setPersons(persons);
}
getPersons() {
return JSON.parse(this.storage.getItem(this.#keys.persons)) || [];
}
getPerson(id) {
const persons = this.getPersons();
return persons.find((person) => person.id === id);
}
setPersons(persons) {
this.storage.setItem(this.#keys.persons, JSON.stringify(persons));
}
removePerson(person) {
const persons = this.getPersons();
const index = persons.indexOf(person);
persons.splice(index, 1);
this.setPersons(persons);
}
clear() {
this.storage.clear();
}
}
const storageService = new LocalStorageService();
const person = {
id: '1',
name: 'John',
age: '20',
};
storageService.addPerson(person);
const persons = storageService.getPersons();
console.log(persons);