Com a chegada do HTML5, tornou-se possível que dados fossem armazenados no navegador do usuário. Anteriormente isso era feito usando cookies e hoje em dia o HTML5 assumiu esse papel no desenvolvimento com os seguintes objetos:

  • sessionStorage
  • localStorage

Todo o armazenamento é feito usando pares de key-value. Neste artigo vamos ver de uma forma explicada como armazenar dados usando os objetos sessionStorage e localStorage.

Nota: Os objetos de armazenamento são suportados por todos os navegadores mais recentes.

No nosso exemplo iremos usar o Opera para testar as listagens de código e fornecer as imagens.

Session storage

O objeto Session storage permite aos usuários armazenarem os dados para uma única sessão. Assim que o usuário deixa a página e fecha a janela do navegador, os dados serão perdidos. Isso é muito usado em jogos interativos onde um armazenamento temporário é necessário para armazenar dados.

Vamos ver como armazenar dados com HTML5 com o código da listagem 1.

Listagem 1: Sintaxe para armazenar dados em session storage


sessionStorage.setItem(“keyName”,value);

A keyName tem que ser um valor de sequência de caracteres; o valor pode ser qualquer tipo de dados aceitável. O par de key-value é sempre armazenado como valores de sequência de caracteres. Portanto, sempre lembre-se de converter o valor para o tipo de dados correto antes de usá-lo.

Abaixo podemos ver um exemplo de como usar o session storage:

Listagem 2: Session storage


<!DOCTYPE HTML>
<html>
<head>
<title>Session storage</title>
<script type="text/javascript">
function AssignValues()
{
sessionStorage.setItem("text1", document.form1.text1.value);
sessionStorage.setItem("text2", document.form1.text2.value);
sessionStorage.setItem("text3", document.form1.text3.value);
}
 
function Value1()
{
alert("Value 1 is " + sessionStorage.getItem("text1"));
}
 
function Value2()
{
alert("Value 2 is " + sessionStorage.getItem("text2"));
}
 
function Value3()
{
alert("Value 3 is " + sessionStorage.getItem("text3"));
}
</script>
</head>
<body>
<form name="form1">
<input type="text" name="text1" placeholder="Enter text...">
<br>
<input type="text" name="text2" placeholder="Enter text...">
<br>
<input type="text" name="text3" placeholder="Enter text...">
<br>
<input type="button" value="Assign values" onClick="AssignValues()">
<br>
<input type="button" value="Show value 1" onClick="Value1()">
<br>
<input type="button" value="Show value 2" onClick="Value2()">
<br>
<input type="button" value="Show value 3" onClick="Value3()">
<br>
</form>
</body>
</html>
Resultados da listagem 2.

Figura 1: Resultados da listagem 2.

Existem quatro funções em uso na listagem acima.

  • A função AssignValues é usada para definir os pares de key-value. O texto do primeiro textbox é atribuído a uma key text1, texto do segundo textbox é atribuído a key text2 e o texto do terceiro textbox é atribuído a key text3.
  • A função Value1 recupera a key text1.
  • A função Value2 recupera a key text2.
  • A função Value3 recupera a key text3.

As funções são chamadas no evento onClick dos vários botões.

Note que se você clicar no primeiro botão sem quaisquer valores textbox, um valor vazio é alertado como o valor. Também, os dados serão perdidos quando o navegador for fechado.

Local storage

Local storage é persistente; Ele armazena dados sem data de expiração. Os usuários podem deixar o local, desligar o computador e os dados ainda estarão presentes no navegador.

Local storage é muito semelhante aos cookies exceto por algumas diferenças importantes, como:

  • Cookies tem muito pouco espaço de armazenamento; local storage permite muito mais espaço de armazenamento.
  • Cookies estão incluídos com cada solicitação ao servidor, enquanto que local storage é transmitido apenas mediante pedido. Isto significa que podemos armazenar grandes quantidades de dados sem afetar o desempenho do site.

Valores de Local storage podem ser definidos e obtidos da mesma forma como session storage.

Listagem 3: Local storage


<!DOCTYPE HTML>
<html>
<head>
<title>Local storage</title>
<script type="text/javascript">
function AssignValues()
{
localStorage.setItem("text1", document.form1.text1.value);
localStorage.setItem("text2", document.form1.text2.value);
localStorage.setItem("text3", document.form1.text3.value);
}
 
function Value1()
{
alert("Value 1 is " + localStorage.getItem("text1"));
}
 
function Value2()
{
alert("Value 2 is " + localStorage.getItem("text2"));
}
 
function Value3()
{
alert("Value 3 is " + localStorage.getItem("text3"));
}
 
function ShowLength()
{
alert("No of items in local storage is " + localStorage.length);
}
function ClearStorage()
{
localStorage.clear();
alert("No of items in local storage is " + localStorage.length);
}
</script>
</head>
<body>
<form name="form1">
<input type="text" name="text1" placeholder="Enter text...">
<br>
<input type="text" name="text2" placeholder="Enter text...">
<br>
<input type="text" name="text3" placeholder="Enter text...">
<br>
<input type="button" value="Assign values" onClick="AssignValues()">
<br>
<input type="button" value="Show value 1" onClick="Value1()">
<br>
<input type="button" value="Show value 2" onClick="Value2()">
<br>
<input type="button" value="Show value 3" onClick="Value3()">
<br>
<input type="button" value="Show length" onClick="ShowLength()">
<br>
<input type="button" value="Clear storage" onClick="ClearStorage()">
</form>
</body>
</html>

A listagem acima contém funções semelhantes à Listagem 2, exceto quando ele usa objeto localStorage. A função ShowLength é usada para recuperar o número de itens do localStorage usando a propriedade length do localStorage. O localStorage é desmarcado usando a função clear() do objeto localStorage.

Resultados da listagem acima

Figura 2: Resultados da listagem acima

Apresentamos assim algumas das opções, muito úteis, que o HTML5 proporciona para armazenamento de dados.

Espero que tenham gostado, qualquer dúvida fiquem a vontade em usar a área de comentários do site.

Até a próxima.

Artigo traduzido e originalmente publicado em: http://mrbool.com/how-to-store-data-in-html5/26282