xandeadx.ru Блог музицирующего веб-девелопера

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

Опубликовано в

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

// запись
foo = ['bar1', 'bar2', 'bar3'];
localStorage.foo = JSON.stringify(foo);
 
// чтение
foo = localStorage.foo ? JSON.parse(localStorage.foo) : [];
Похожие записи

Комментарии RSS

написанное актуально ...

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

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

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

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

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

Web SQL выглядит вкуснее и удобнее.

http://www.w3.org/TR/webdatabase/#status-of-this-document

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

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

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

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

web sql & profit

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

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

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

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

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.

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

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

Оставить комментарий

Содержимое этого поля является приватным и не будет отображаться публично. Если у вас есть аккаунт в Gravatar, привязанный к этому e-mail адресу, то он будет использован для отображения аватара.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступные HTML теги: <a> <i> <b> <strong> <code> <ul> <ol> <li> <blockquote> <em> <s>
  • Строки и параграфы переносятся автоматически.
  • Подсветка кода осуществляется с помощью тегов: <code>, <css>, <html>, <ini>, <javascript>, <sql>, <php>. Поддерживаемые стили выделения кода: <foo>, [foo].

Подробнее о форматировании