Em um passado não muito distante, quando era necessário armazenar alguma informação no lado do cliente, e gerenciar através do JavaScript, logo se pensava em “Cookies”. Existem alguns plugins para se trabalhar de forma melhor com cookies. Porem é um tanto limitado, comparado ao “Storage”.
Ao contrário dos cookies, o Storage só pode ser manipulado do lado do cliente, ou seja, pelo JavaScript.
A capacidade de armazenamento aumentou consideravelmente (em relação aos cookies), cerca de 5 MBs, dependendo do navegador.
O armazenamento é por origem (por domínio e protocolo). Todas as páginas de uma origem podem armazenar e acessar os mesmos dados, ou seja, somente o domínio que adicionou o item no Storage, pode obter os dados do mesmo, por questão de segurança.
Vamos entender como trabalhar com o Storage.

Existem dois locais para armazenar: “window.localStorage” e “window.sessionStorage”. Nos exemplos, vamos omitir o uso do “window”, já que o mesmo é implícito.

localStorage: Armazena sem data de expiração, mesmo quando o navegador é fechado, os dados permanecem armazenados. Cuidado ao utilizar este, devido ao seu limite de armazenamento.
sessionStorage: Armazena os dados por sessão, os dados são perdidos quando a guia do navegador é fechada.

Primeiro, vamos ver como identificar se o navegador suporta o recurso

if (typeof(Storage) !== "undefined")
    alert("Este navegador suporta o uso");
else
    alert("Este navegador não suporta o uso");

Como podemos ver acima, fizemos um “if”, para verificar se a variável nativa “Storage” existe, caso sim, significa que o navegador suporta o uso de Storage.

Como adicionar um item (a sintaxe é na mesma, para o uso de “localStorage” ou “sessionStorage”), considere trocar “localStorage” por “sessionStorage”, para testar os exemplos.

localStorage.setItem('nome', 'André Btoe');

Acima, adicionamos um item no “localStorage”, com a chave “nome”, e com o valor “André Btoe”.
A primeira vez que esse trecho de código for executado, irá adicionar o item, ao executar novamente, o mesmo valor será subscrito.
O primeiro argumento é o identificador do item adicionado, ele será usado no momento que for necessário obter o valor.
O segundo argumento é os dados que você deseja armazenar. Visto que este, permite apenas o uso de “string”, caso você necessite armazenar um object JavaScript, você deve serializar o object para Json, utilizando “JSON.stringify”, ou algo equivalente.

Como obter um valor por chave

var nome = localStorage.getItem('nome');
alert(nome);

Acima, atribuirmos a variável “nome” com o valor armazenado no “localStorage”, com a chave “nome”, utilizando o método “getItem”.

Como armazenar um object

var carro = {
	nome: "Focus",
	marca: "Ford"
};

localStorage.setItem('carro', JSON.stringify(carro));
var carroNovo = JSON.parse(localStorage.getItem('carro'));

Primeiro, criamos um object e atribuímos a variável de nome “carro”, com dois atributos “nome” e “marca”, ambos do tipo “string”, porem poderia ser qualquer valor permitido em um object JavaScript.
Logo abaixo, adicionamos um item, com o uso do método “setItem”, passando como parâmetro o nome do identificar do item, nome caso “carro”.
Em seguida, informamos o segundo parâmetro, que nada mais que um retorno do tipo “string”, provido pelo método “stringify”, que retorna uma “string”, no formato Json.
E por último, atribuímos o retorno armazenado, do identificar “carro”, utilizando o método “getItem”, que serve de parâmetro para o método “parse”, para deserializar os dados armazenados, e transformar em um object JavaScript novamente, e atribuir a variável de nome “carroNovo”.

Limpar os dados do local storage

sessionStorage.clear()
localStorage.clear()

Acima, temos o uso do método “clear”, de ambos locais de armazenamento disponível. Ele apenas limpar todas os identificadores.

Espero ter ajudado!
Até a próxima!

Publicidade