| HTML5 [1] |
| CSS3 [1] |
| JavaScript [3] |
| JS in HTML5 [4] |
| Canvas (Context2D) [1] |
| Canvas (WebGL) [0] |
| Browser Technologies [2] |
| jQuery [1] |
| ExtJS [0] |
| Prototype.js [2] |
| SVG [2] |
| Browsers [2] |
|
Mozilla Plugins [0]
XUL, Jetpack, etc.
|
| Web [2] |
| MeowW [4] |
| iOS [0] |
| Алгоритмы [0] |
| Криптография [0] |
| Теория игр [0] |
| Теория вероятностей [0] |
| Математика [1] |
| Мат. анализ [0] |
| Алгебра [0] |
| Дискретная математика [0] |
| Теория графов [0] |
| Комбинаторика [0] |
| Теория чисел [0] |
| Комплексный анализ [0] |
|
Матлогика [0]
Математическая логика, её связь с теорией алгоритмов и т.п.
|
| Тензоры [0] |
| Геометрия [0] |
| Топология [0] |
| Дифференциальная геометрия [0] |
| Дифференциальные уравнения [0] |
22:30:32 Web Storages - новые хранилища на клиентской стороне. |
В html5 появились новые хранилища - и если куки вмещают только 5 Кб, то здесь - 5 Мб! Причем есть аж два типа хранилища, и работать с ними - проще простого. Есть два типа хранилищ - localStorage и sessionStorage... LocalStorage предназначен для длительного хранения данных одного сайта, а sessionStorage - для хранения информации в течение сессии. Т.е. sessionStorage - сохраняет данные пока вы не закроете браузер (передаются между страницами на одном сайте), а localStorage - данные хранятся долго, и остаются после закрытия браузера. Как я уже сказал, лимит - 5 Мб, IE, желая выделиться, поднял до 10 Мб. Кстати говоря, в Firefox есть такая штука: данные хранятся для всего сайта, таким образом одна страница может занять все место для всего сайта и даже поддоменов. В Chrome - все наоборот: путь до скрипта учитывается полностью, но таким образом один сайт может занять вообще все место на жестком диске. LocasStorage и sessionStorage по синтаксису аналогичны: есть объект, у него есть свойства (ну и функции, сохраненные как лямбда-функции в свойствах), если добавить свойство - оно и останется у этого объекта (сохранится) Code sessionStorage.myvariable='var'; // сохраняем переменную (после ухода с сайта удаляется) sessionStorage.myvariable; // возвращает 'var' localStorage.myvariable='var'; // сохраняем переменную (останется, пока не удалим, или не удалит пользователь) localStorage.myvariable; // и опять возвратит 'var' Также можно работать с localStorage и sessionStorage как с массивом или методами: Code
localStorage["myvariable"]='var'; // снова сохраняем переменную
localStorage.setItem("myvariable", "var"); // сохранение переменной методом
localStorage["myvariable"]; // снова возвращает переменную
localStorage.getItem("myvariable"); // возвращаем переменную методом
А еще у хранилищ есть свойство length, возвращающее количество ключей. Также есть метод key, который принимает единственным параметром число и возвращает значение, распологающееся по этому номеру. Для удаления переменной мы можем просто выставить ее значение в undefined, но это наверняка чревато: браузер просто сохранит переменную в значении undefined вместо того, чтобы удалить ее. Для удаления есть две функции. Code localStorage.remove('myvariable'); // удаляет переменную myvariable
localStorage.clear(); // очистит все переменныеСобственно, я забыл про то что наряду с часто используемым оператором new в JS есть оператор delete. Code delete localStorage.myvariable; А еще оказывается есть событие storage, наступающее при любых манипуляций с хранилищем. Code
<body onStorage="alert('onStorage!');">
Code
window.addEventListener('storage', function(event){
/*
event.key - ключ данных
event.oldValue - старое значение
event.newValue - новое значение
event.window - окошко... сам не очень понял(
event.uri - по видимому, адрес страницы
*/
}, false);
Кстати, есть скрипт sessionstorage.js, честно эмулирующий все storages в браузерах, его не поддерживающих.Скачать |
|
|
| Всего комментариев: 0 | |

