И sessionStorage и localStorage сохраняют данные в форме отдельных элементов. Элементом считается пара из ключевого слова и значения. Каждое значение перед помещением в строку необходимо конвертировать в строку.
Для создания и извлечения элементов из пространства хранилища предназначены два новых метода:
setItem(key, value). Для создания, где key – это ключевое слово, value – это значение.
getItem(key). Для извлечения по ключевому слову.
function initiate(){ var button = document.getElementById('save'); button.addEventListener('click', newitem); } function newitem(){ var keyword = document.getElementById('keyword').value; var value = document.getElementById('text').value; sessionStorage.setItem(keyword, value); show(keyword); } function show(keyword){ var databox = document.getElementById('databox'); var value = sessionStorage.getItem(keyword); databox.innerHTML = ' ' + keyword + ' - ' + value + ' \n '; } addEventListener('load', initiate);
Функция newitem() выполняется каждый раз, когда пользователь щелкает на кнопке формы. Эта функция создает элемент и добавляет в него информацию, полученную из формы, а затем вызывает функцию show(). Функция show() в свою очередь извлекает элемент из хранилища по ключевому слову, используя метод getItem(), а затем выводит его на экран.
Помимо этих методов, API хранения предоставляет упрощенный способ создания и извлечения элементов из пространства хранилища, в котором ключевое слово элемента используется, как свойство. Можно переменную ключевого слова заключать в квадратные скобки.
sessionStorage[ключевое_слово] = значение
, а можно передать строку в качестве имени свойства, например
sessionStorage.myitem = значение
function initiate(){ var button = document.getElementById('save'); button.addEventListener('click', newitem); } function newitem(){ var keyword = document.getElementById('keyword').value; var value = document.getElementById('text').value; sessionStorage[keyword] = value; show(keyword); } function show(keyword){ var databox = document.getElementById('databox'); var value = sessionStorage[keyword]; databox.innerHTML = '' + keyword + ' - ' + value + ''; } addEventListener('load', initiate);
Рассмотрим методы и свойства API, позволяющие манипулировать данными:
length. Возвращает число элементов, помещенных в хранилище данным приложением.
key(index). Элементы записываются в хранилище последовательно, и им автоматически присваиваются порядковые номера, начиная с 0. С помощью данного метода можно извлечь определенный элемент или даже всю информацию, содержащуюся в хранилище, если пройтись по нему в цикле.
function initiate(){ var button = document.getElementById('save'); button.addEventListener('click', newitem); show(); } function newitem(){ var keyword = document.getElementById('keyword').value; var value = document.getElementById('text').value; sessionStorage.setItem(keyword, value); document.getElementById('keyword').value = ''; document.getElementById('text').value = ''; show(); } function show(){ var databox = document.getElementById('databox'); databox.innerHTML = ''; for(var f = 0; f < sessionStorage.length; f++){ var keyword = sessionStorage.key(f); var value = sessionStorage.getItem(keyword); databox.innerHTML += '' + keyword + ' - ' + value + ''; } } addEventListener('load', initiate);
Задача данного листинга вывести полный список элементов из хранилища. Мы немного усовершенствовали функцию show(), применив свойство length и метод key(). Для этого создали цикл for, начинающийся с 0, и заканчивающийся порядковым номером последнего элемента из хранилища. Функция show() вызывается из функции init(). Таким образом, она выводит список элементов из хранилища на экран сразу же, как только приложение запускается.