Voltar ao blog

Ferramentas JavaScript: localStorage e sessionStorage

Ferramentas JavaScript: localStorage e sessionStorage

JavaScript (frequentemente abreviado como JS) é uma das bases da infraestrutura web moderna. É uma linguagem de programação leve, interpretada e orientada a objetos que suporta funções de primeira classe. O JavaScript é conhecido principalmente por sua implementação em páginas web dinâmicas. Devido aos seus recursos, no entanto, o JavaScript também é usado em ambientes fora do navegador.

Neste guia, discutiremos em detalhes dois objetos JavaScript: localStorage e sessionStorage.

Visão geral do localStorage e sessionStorage

Os objetos localStorage e sessionStorage são oferecidos como parte da API de armazenamento web. É uma ótima ferramenta para armazenamento local de pares chave-valor. Usar localStorage e sessionStorage é uma ótima alternativa aos cookies. Essa abordagem oferece alguns benefícios extras:

  • Os dados são armazenados localmente e não podem ser lidos pelo servidor. Isso elimina os problemas de segurança com cookies.
  • Permite maior capacidade de armazenamento (até 10 MB para a maioria dos navegadores modernos).
  • Sintaxe simples e direta.

Esses objetos são suportados em todos os navegadores web modernos, portanto não haverá problemas de compatibilidade de navegador. Os cookies ainda são úteis em muitas situações, por exemplo, autenticação. No entanto, existem situações em que localStorage e sessionStorage oferecem soluções melhores.

Pré-requisitos

Para realizar as etapas mostradas neste tutorial, você precisará dos seguintes componentes:

Para demonstração, pegamos uma página web de exemplo anexada a um script JS. Você pode aprender mais sobre como adicionar JavaScript a um arquivo HTML aqui:

tree_struct

VS 1

Quanto ao editor de texto, usaremos o Visual Studio Code:

Web 1

Qual é a diferença entre localStorage e sessionStorage?

Ambos localStorage e sessionStorage originam-se da mesma API. Seus comportamentos também são idênticos. A única diferença está na maneira como cada objeto permite a persistência de dados. No caso do sessionStorage, os dados persistem até que a janela ou aba seja fechada. Com o localStorage, os dados persistem até que o cache do navegador seja limpo ou o aplicativo web os limpe.

Neste tutorial, focaremos principalmente no localStorage. No entanto, a sintaxe para o sessionStorage é a mesma. Mostraremos como criar, ler e atualizar pares chave/valor usando o localStorage.

Passo 1 – Criando Entradas

Podemos declarar uma entrada no objeto localStorage usando setItem(). Este método aceita dois argumentos: a chave e seu valor correspondente. A estrutura do método é a seguinte:

No exemplo a seguir, criamos uma variável key. Usando o método setItem(), definimos uma nova chave e definimos seu valor como value:

VS 2

Passo 2 – Lendo Entradas

Agora, como lemos o valor armazenado na chave? Para obter uma chave do localStorage, usaremos o método getItem(). Ele aceita o nome da chave e retorna os valores armazenados nela. Usaremos o método alert() para exibir o conteúdo que buscamos:

VS 3

Em seguida, abra a página web em um navegador. Ela deve mostrar o valor armazenado na chave:

Web 2

Passo 3 – Atualizando Entradas

Uma vez que um valor é definido, ele permanecerá assim a menos que seja alterado. Se usarmos o método setItem() na mesma chave novamente, ele substituirá automaticamente o valor antigo pelo novo.

No exemplo a seguir, a chave é inicialmente iniciada com o valor value. Na linha seguinte, chamamos setItem() mais uma vez e definimos o valor como novo valor:

VS 4

Vejamos o que acontece quando executamos este código no navegador:

Web 3

Como podemos ver, o valor da chave é definido como novo valor.

Passo 4 – Removendo Entradas

Se houver múltiplas entradas no localStorage (e sessionStorage também) que não são mais necessárias, é recomendável limpá-las depois. Isso abre mais espaço para uso posterior. O aplicativo também se torna mais eficiente em termos de memória.

Para excluir uma entrada do localStorage, existe um método dedicado removeItem(). Ele recebe a chave como argumento e a remove do localStorage pool de dados:

Vamos implementá-lo em nosso script:

VS 5

Quando executado, a saída diz null porque não existe valor para a chave:

Web 4

Passo 5 – Limpando Entradas

No exemplo anterior, removemos apenas uma chave. No entanto, o localStorage permite limpar todos os itens armazenados em uma única etapa. Para limpar todas as entradas, o localStorage oferece o método clear(). Ele não recebe argumentos:

Coloque o método em ação:

VS 6

Assim como antes, ele remove todas as entradas do localStorage, então, ao tentar acessar o valor da chave , ele retorna null:

Web 5

Passo 6 – Trabalhando com JSON

  • Armazenando Objetos e Arrays

Os objetos localStorage e sessionStorage só podem armazenar valores de string. No entanto, haverá momentos em que você terá que trabalhar com objetos ou arrays. Nesse caso, precisamos convertê-los em uma string.

O JavaScript vem com o recurso JSON.stringify() que pegará o array/objeto e o converterá em strings. Este post oferece uma visão geral rápida do formato JSON. Para um guia mais detalhado, você pode ler JSON em JavaScript.

Neste exemplo, criamos um objeto sampleObj com dois campos name e location. Nós o converteremos em uma string e o armazenaremos na chave:

VS 7

Aqui, a saída será a string contendo os dados do objeto:

Web 6

  • Lendo Objetos e Arrays

Ao armazenar, convertemos objetos e arrays em strings. Podemos pegar essa string e convertê-la de volta ao seu formato original também. Para fazer isso, usaremos o método JSON.parse(). Ele recebe uma string e a converte de volta para o formato JSON:

VS 8

Quanto à saída, nós a convertemos novamente em uma string e a formatamos para uma melhor visualização:

Web 7

Passo 7 – Verificando Item no localStorage

Nesta seção, mostraremos um teste simples para determinar se o localStorage e o sessionStorage contêm algum item ou não. Usando uma simples if instrução, podemos verificar o comprimento de localStorage ou sessionStorage. Se houver itens, o comprimento será maior que 0.

Primeiro, implemente o seguinte exemplo:

VS 9

Aqui, a saída será true porque existe uma chave em localStorage:

Web 8

Passo 8 – Iterando sobre itens

Os objetos localStorage e sessionStorage armazenam as chaves em uma estrutura semelhante a um array. Eles não suportam o método forEach , por isso teremos que seguir a técnica clássica de usar um loop for para iterar sobre cada item.

No exemplo a seguir, verificaremos se o localStorage está vazio ou não. Se não estiver vazio, iteraremos sobre cada item:

VS 10

A saída mostrará todos os itens um por um:

Web 9

Passo 9 – Verificar o suporte do navegador

Podemos verificar o suporte para localStorage (e sessionStorage) verificando se está disponível no objeto window. Uma simples instrução if resolverá o problema:

VS 11

Execute o código no navegador web:

Web 10

Considerações Finais

Este guia demonstrou como usar os objetos localStorage e sessionStorage no JavaScript para armazenar pares de chave/valor no navegador. As sintaxes são muito mais simples de trabalhar. Mostramos como criar, remover e atualizar pares de chave/valor. Também abordamos o armazenamento de objetos e arrays convertendo-os em strings (e vice-versa).

Para aprofundar ainda mais seus conhecimentos em JavaScript, você pode conferir os seguintes tutoriais do nosso blog:

Boa programação!

author

Pranay Kapgate

Autor · CloudSigma

Preslav Dobrev é um designer criativo na CloudSigma, focado na construção de uma identidade empresarial consistente por meio de canais de marketing tradicionais e inovadores. Ele é hábil em combinar a visão artística com o marketing estratégico para criar narrativas de marca impactantes.

Comentários

Nenhum comentário ainda. Seja o primeiro.