Чтобы расширить это, следующее извлекает все в localStorage.
Независимо от типа записи, объект, массив или просто значение .
И все хорошо записать обратно на место.
Полезно для сохранения / экспорта / восстановления любой заданной конфигурации!
function getLocalItems(k){
if (k){
try{
return JSON.parse(localStorage.getItem(k))
} catch(e){
return localStorage.getItem(k)
}
}
}
function setLocalItems(k, value){
if (typeof value === 'object') {
value = JSON.stringify(value)
}
localStorage.setItem(k, value)
}
// Put all entries in an object «store»
let store = {}
for (let i = 0, l = localStorage.length; i < l; i++) {
store[localStorage.key(i)] = getLocalItems(localStorage.key(i))
}
console.log(store)
// Write all keys of «store» in localStorage
for (let o in store) {
setLocalItems(o, store[o])
}
Затем вы можете отправить этот объект «store» на ваш сервер для резервного копирования / восстановления после входа в систему.
После экспериментов, в случае интенсивного использования localStorage, было бы неплохо использовать этот объект «store» в скриптах, это сохраняет все значения в памяти для более быстрого доступа ввода-вывода, потому что нет жесткой записи на диск .
В любом случае localStorage очень мощный, мы можем создавать сложные вещи. Используйте его таким образом, чтобы ваши скрипты не выходили из строя, если ключи localStorage отсутствуют или повреждены.
Предоставление пользователям возможности стирать все локальные конфигурации с помощью кнопки или автоматически после выхода из системы также является хорошей идеей!