X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> LocalStorage - локальное кэширование
k0ttee
k0ttee
Topic Starter сообщение 3.8.2015, 16:50; Ответить: k0ttee
Сообщение #1


После PHP писать на JS непривычно. В пыхе если задал $x=2, то можно сохранить в базу или в файл... А вот куда деть значения JS при работе на клиенте? Пишут же как-то на этом JS всякие плагины к браузерам и куда-то девают данные (скажем настройки плагина).


С приходом HTML5 ребята из WHATWG и W3C подсуетились и сделали нам LocalStorage. Сначала частью спецификации HTML5, а потом все-таки отпочковали в сторонку.

Когда нажимаете хокеи Crtl+Shift+Backspace (или яблоруны ⌘⇧⌫) для очистки данных браузера, вы наверняка подозревали: "Это не все!"
И таки да, кроме кэша с печеньками есть еще и "локальные данные сайтов" (которые надо чистить отдельно). Они и есть LocalStorage.

Привычный способ хранять состояние для конкретного юзера – это cookies. По сути это текстовый файл, прицепленный к домену сайта, который хранится у пользователя (и даже тупой пользователь умеет его чистить).

Я не пользуюсь печеньками. И вот почему:

1.) Гоняют туда-сюда при загрузке каждой страницы.
2.) Максимально влезает только 4 килобайта.
3.) Их можно стащить или подменить.

Поюзать LocalStorage можно в браузерах (совместимых с HTML5) причем писать надо гораздо меньше кода чем для кукисов. Вся работа идет с объектом localStorage в JavaScript.

Есть пара методов: для записи и чтения - setItem() и getItem()

//запишем, что икс это два
localStorage.setItem(‘x’,‘2’);
//прочитаем икс
var x = localStorage.getItem(‘x’);
alert(x); //выведет 2
//удалим ненужный объект
localStorage.removeItem('x');


А еще, вместо LocalStorage можно использовать SessionStorage (своего рода сессия на клиенте, пока браузер не будет закрыт).

Шикарно! А в чем остой?

В том что Strings Only. Неприятная особенность у LocalStorage – это то, что можно пользоваться только переменными типа "строка" (string). Иными словами, если у вас объект или массив, то сохранить его не получится. Можете попытаться, но место объекта получите [object Object]. Жаль жаль жаль...

Но есть чудо-костыль, можно скукожить и раскукожить объект в Json. На то есть методы JSON.stringify()и JSON.parse()

P.S:
Этим можно спалить школьника, который чистит кукисы и пытается вам накрутить. :friends: Так что когда крутим, не забываем чистить и "локальные данные сайтов" в браузере.


--------------------
Задонь кибер-коту на крипто-вискас
btc: 3Hq7X9CosVftRFPqWis1Dkk5MdtM1u6jj9
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Dotatin
Dotatin
сообщение 3.8.2015, 17:02; Ответить: Dotatin
Сообщение #2


Я думал я один куками не пользуюсь. :)
Кстати, в 4 кб можно очень много текстовой информации напихать при желании.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
k0ttee
k0ttee
Topic Starter сообщение 3.8.2015, 17:39; Ответить: k0ttee
Сообщение #3


думал я один куками не пользуюсь

Если статичный адрес и сайты однопользовательские, можно сделать авторизацию одной строкой: если адрес не такой - не пускать.
Еще на сервере сессии есть.
И после этого логично предположить... А зачем мне кукисы?

в 4 кб можно очень много текстовой информации напихать

А в LocalStorage хоть весь шаблон затолкать можно, сервер же будет отдавать только контент. Я подумываю затолкать туда весь редактор админки (при первом входе туда записать, а потом читать оттуда для ускорения сайта и снижения трафика).


--------------------
Задонь кибер-коту на крипто-вискас
btc: 3Hq7X9CosVftRFPqWis1Dkk5MdtM1u6jj9
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
k0ttee
k0ttee
Topic Starter сообщение 18.8.2015, 12:25; Ответить: k0ttee
Сообщение #4


Хомячу еще парочку полезных функций.

Полностью стереть все данные относящиеся к этому плагину (да, в сайтах еще не успел применить - вожусь с хромо-плагином).
//полная очистка LocalStorage
localStorage.clear()

Вывести в консоль все присутствующие в LocalStorage строки (если аппендить это в документ, можно посмотреть какие данные сайт у вас хранит).
for (var i = 0; i < localStorage.length; i++) { key = localStorage.key(i);
    console.log(key + " = " + localStorage.getItem(key));
}


Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.


--------------------
Задонь кибер-коту на крипто-вискас
btc: 3Hq7X9CosVftRFPqWis1Dkk5MdtM1u6jj9
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


 



RSS Текстовая версия Сейчас: 19.4.2024, 1:42
Дизайн