O Web Storage, introduzido em HTML5, permite o armazenamento de até 10 MB no computador do cliente. Este armazenamento é baseado em pares de valores de chave, chaves e valores são armazenados como strings. Por exemplo, parseInt () seria necessário para recuperar um inteiro.
Existem três sabores diferentes de Web Storage, sessionStorage, globalStorage e localStorage.
sessionStorage: retém pares de valores-chave durante o tempo de vida de uma única guia.
globalStorage: agora obsoleto, não o use, use localStorage ao invés.
localStorage: persiste além da sessão atual.
Claro, para começar, verifique se o armazenamento está disponível na janela do cliente
function supportsLocalStorage()
{
try
{
//local storage is an alias for window['localStorage']
return ('localStorage' in window && window['localStorage'] !== null);
}
catch (e) { console.log(e.stack); }
return false;
}
Os dois objetos de armazenamento da Web atuais, sessionStorage e localStorage, cada um tem os mesmos métodos e propriedades. Os mais úteis são:
-setItem: um método atribui um valor a uma chave, se a chave já existir, ele atualizará o valor.
function addData(key, data)
{
//add data to new key, or replace value if the key already exists with new data
try
{
//error isn't thrown in MSIE
if (browser == "MSIE")
{
if (getRemainingSpace() - data.length < 0)
return false;
}
//add the value to the key, equivalent to localStorage.setItem('key', 'value')
localStorage[key] = data;
return true;
}
catch (e)
{
console.log(e.stack);
if (e.message == 'An attempt was made to add something to storage that exceeded the quota.')
{
//handle error, there is too much data
console.log('too much data');
}
return false;
}
}
-getItem: um método recupera uma chave do armazenamento, se o valor não existir, retorna indefinido.
function getData(key)
{
//attempt to get the value from key value pair
var data = localStorage[key];
if (typeof data !== 'undefined')
{
//data exists
console.log('localStorage[' + key + '] = ' + data);
}
else
{
//cache returned null, image was not in the cache
console.log(key + ' is not a key contained within the local storage dictionary');
}
}
-removeItem: um método para remover um par de valores-chave
function removeData(key)
{
//remove data at a single key
localStorage.removeItem(key);
}
-clear: um método para remover todos os pares de valor-chave do armazenamento
function clearData()
{
//clear all data
localStorage.clear();
}
-length: uma propriedade correspondente ao número de elementos em armazenamento.
function getLength()
{
//return the number of items in local storage
return localStorage.length;
}
-remainingSpace: uma propriedade, que só existe no IE, correspondente ao espaço que fica no cache, em Bytes. Para conseguir o mesmo em navegadores que não são MSIE, use o método JSON.stringify. O espaço de armazenamento disponível não é consistente entre os navegadores, consulte Web Storage Support Test para as restrições de tamanho do cache de cada navegador.
function getRemainingSpace()
{
//return the number of bytes still available in localStorage
if (browser == "MSIE")
//only IE supports this function
return localStorage.remainingSpace;
else
//use info from Web Storage Support Test to get available bytes based on browser
return available_bytes - JSON.stringify(localStorage).length;
}
* nota: o Web Storage não funcionará no IE para o protocolo file: //.
Leitura adicional: