Javascript → Хранение массивов в localStorage

07.11.2011

Пример хранения в переменной localStorage.foo массива из трёх элементов:

// запись
foo = ['bar1', 'bar2', 'bar3'];
localStorage.foo = JSON.stringify(foo);

// чтение
foo = localStorage.foo ? JSON.parse(localStorage.foo) : [];
Похожие записи

Комментарии

Vydrin_AP
07.11.2011, 13:15

Хотелось бы добавить список поддерживаемых браузеров:
IE >= 8, FF >= 3.5, Safari >= 4, Chrome >= 3.0, Opera >= 10.5

И еще, var'ы бы не помешали в коде ;)

Беда с ним. Подходит для маленьких и простых данных. Web SQL выглядит вкуснее и удобнее.

@Vydrin_AP спасибо за дополнение.

p.s. в IE8 нет localStorage :)

И чего? Мне кажется, что это изначально не совсем инициатива w3c и стандартизировать там в отношении клиенских БД изначально нечего. SQLite и так есть, причем давно, а связка интерфейса на JS с нативными браузерными функциями это как бы несколько иное ;)

Ничего никуда не денется. Это нужная вещь и она будет, даже не смотря на то, что на эту спецификацию забили. Она по идее тут нахрен не нужно, это больше программирование.

Проблема в том, что LS хранит только пары ключ-значение. Начинаются всякие извращения со стрингифи, впихиванием данных в строку с разделителем, дрочка с структуризацией и прочие извраты.

Это конечно здорово, но вот если в строку придется пару мегабайт засовывать а потом парсить это?

web sql & profit

Это конечно здорово, но вот если в строку придется пару мегабайт засовывать а потом парсить это?

а хранить пяток значений в web sql значит не здорово? каждая технология имеет свою область применения и фразы "web sql & profit" вызывают конечно только улыбку

согласен :) для пятка значений это явный перебор. но если уже потребуется что-то серьезнее, я бы уже тогда на wsql завязывал и остальное

Look at this: http://persistencejs.org/ В прицнипе, велосипеды уже есть. Но можно и свой придумать, если потребуется. По идее ничего особо сложного

Vydrin_AP
11.02.2012, 10:57

p.s. в IE8 нет localStorage :)

Офиц. пруф. Вот еще детальнее.
И еще:
Note: Although the values can be set and read using the standard JavaScript property access method, using the getItem and setItem methods is recommended.

Игорь
27.02.2013, 22:24

Эта переменная - массив - доступна для userа на любой странице? При перемещении по сайту? И где это сохраняется, кратко, но понятно...)))

Игорь
13.02.2015, 14:00

Сохраняется в браузере, причем в отличие от кук, которые обычно не более 4Кб тут может быть гораздо больше места
Вот плагины http://plugins.jquery.com/tag/localstorage/
Мне понравился первый http://plugins.jquery.com/storageapi/
Я это использовал, чтобы запомнить клик по предыдущему чекбоксу.

Добавить комментарий