Fala pessoal, tudo bom?
Recentemente comecei a fazer algumas experiências e acabei criando uma extensão pra Google Chrome (apenas pra uso pessoal, não vou publicar).
E uma das coisas que usei no processo (já tinha ouvido falar, mas nunca tinha usado) foi o localStorage, uma “interface” de armazenamento de dados disponível nos navegadores mais atuais do mercado (FF, Chrome, Safari, Opera e etc.).
Todos vocês já ouviram falar dos Cookies e da Sessão, que basicamente faz a mesma coisa (armazena dados) na máquina do cliente e no servidor respectivamente.
A novidade do localStorage/sessionStorage é que isso é feito de forma bastante facilitada, via JavaScript e usando recursos nativos do seu navegador.
Usando o localStorage
O localStorage salva dados no computador do visitante, que ficam vinculados ao (e apenas acessíveis pelo) seu domínio. E pra usar é bem simples:
Use o método setItem(nome, valor) para criar/salvar novos itens e o depois o método getItem(nome) para recuperar o valor.
Usando o sessionStorage
Já o sessionStorage faz exatamente a mesma coisa, só que os dados ficam salvos apenas durante a sessão (e são apagados quando o visitante fecha a aba/navegador):
Viram como é simples?
Quem avisa, amigo é…
Mas prestem atenção… os dados salvos estão acessíveis APENAS no domínio criado.. então preparem-se para problemas entre www.site.com.br, site.com.br e subdominio.site.com.br.
Outro ponto a considerar é que você só consegue salvar strings e números (inteiros) nesse mecanismo, mas nada te impede de criar um objeto JSON com os dados do array/objeto que você quer salvar, não é mesmo?
Espero que tenham gostado desse pequeno e rápido post!
Muito legal esse recurso!
@Renato Reis será que um: if(window.localStorage && window.sessionStorage); funciona?
Thiago,
É possível testar se o navegador tem essas funções habilitadas?
Renato, acho que o código abaixo funcionaria:
if(typeof(window.localStorage) == ‘object’) { /* habilitado */ };
Renato Reis,
É possível sim,
Veja as primeiras funções da parte de Storage do Dive Into HTML5:
http://diveintohtml5.info/storage.html
Testando com JS puro e também com Modernizr
Deve dar seguindo o exemplo dele usando alert(usuario) ou console.log(usuario) se estiver usando firebird ou o chrome.
Dá uma olhada: http://mathiasbynens.be/notes/localstorage-pattern
Pode ser que ajude.