PDM-Aula005a-HTML 5 - Armazenamento local de dados

Propaganda
PROGRAMAÇÃO PARA
DISPOSITIVOS MÓVEIS
- HTML 5: ARMAZENAMENTO
(CLIENTE)
Prof. Angelo Augusto Frozza, M.Sc.
http://about.me/TilFrozza
DE DADOS
ROTEIRO

Introdução

Compatibilidade

Principais características
Web SQL Storage
 Web Storage


Verificação de suporte
INTRODUÇÃO

O HTML 5 prevê duas APIs para armazenamento de
dados no lado do cliente:
Web Storage
 Web SQL Storage


Diretrizes para implementação dessas funcionalidades:
Iniciadas pelo WHATWG (Grupo de Trabalho para HTML5);
 Posteriormente, foram repassadas ao W3C;

INTRODUÇÃO

A API Web Storage é suportada pelos navegadores
modernos, inclusive IE 8;

A API Web SQL Storage não é suportada pelos
navegadores Mozilla, que implementam em seu lugar
outra tecnologia similar, denominada IndexedDB;
COMPATIBILIDADE
PRINCIPAIS CARACTERÍSTICAS

Web SQL Storage

Esta especificação não está mais em manutenção ativa e o
Web Applications Working Group não tem a intenção de
mantê-la;

No lugar dela, está sendo desenvolvida a especificação
Indexed Database API, sugerida pela fundação Mozilla.
PRINCIPAIS CARACTERÍSTICAS

Web Storage

É uma API destinada ao armazenamento de dados em
clientes web


Por exemplo, um navegador
Essa funcionalidade foi criada com a finalidade de corrigir a
forma conceitual e precária do funcionamento de cookies e de
sessões;
Cookie – mecanismo capaz de armazenar pequenas porções de
dados gravadas em um arquivo texto no computador do usuário;
 Um cookie é criado e apagado em uma página web com uso da
linguagem de programação no lado do servidor ou com JavaScript
(no lado cliente);
 Cookies apresentam limitações que vão desde a reduzida capacidade
de armazenagem (4kb) até severas falhas de segurança;

PRINCIPAIS CARACTERÍSTICAS

sessionStorage

Mecanismo projetado com a finalidade de armazenar dados
para transação em um documento HTML
i.e., para cada novo documento HTML é criada uma área de
armazenamento de dados independente;
 Assim é possível coexistirem múltiplas transações em diferentes
janelas ou abas do navegador ao mesmo tempo, cada uma com seus
conjuntos de dados independentes;
 Os dados pertencentes a um documento são excluídos quando o
usuário fecha a janela ou a aba do navegador e não são transmitidos
e nem se comunicam com outras janelas ou abas.

PRINCIPAIS CARACTERÍSTICAS

localStorage

Mecanismo projetado com a finalidade de armazenar dados
que persistem em diferentes janelas ou abas do navegador
Permite que uma transação compartilhe em diferentes janelas ou
abas do navegador o mesmo conjunto de dados;
 Os dados são excluídos quando o usuário fecha o navegador e são
transmitidos e se comunicam com outras janelas ou abas enquanto o
navegador estiver aberto;

PRINCIPAIS CARACTERÍSTICAS

sessionStorage e localStorage

Os objetos sessionStorage e localStorage admitem métodos
destinados a gravar um par chave-valor para um dado,
recuperar o valor de um dado, remover o valor de um dado,
remover todos os dados gravados anteriormente e recuperar
o nome de um dado:
setItem()
 getItem()
 removeItem()
 clear()
 key()


Também contem a propriedade length;
PRINCIPAIS CARACTERÍSTICAS

Armazenagem com JSON

Por padrão, o tipo de dado armazenado localmente é string


Então, deve-se prestar atenção, pois números deverão ser
devidamente convertidos no momento de recuperar um dado;
JSON permite que se use texto para representar objetos
JavaScript;

Também permite armazenar localmente objetos complexos e
recuperá-los posteriormente com o uso dos métodos
 JSON.stringify()
 JSON.parse()
PRINCIPAIS CARACTERÍSTICAS

Evento storage

O evento storage ocorre sempre que há uma alteração na
área de armazenamento de dados definida pelo método
localStorage;

As propriedades do evento storage são:
key – string com o nome do dado que foi modificado, adicionado ou
removido
 oldValue – valor de um dado que tenha sido modificado ou null se o
dado foi adicionado pela primeira vez
 newValue – valor adicionado para um dado ou null se o valor foi
removido
 storageArea – retorna o objeto localStorage
 url – endereço da página na qual se encontra o método que provocou
o evento

VERIFICAÇÃO DE SUPORTE

Outra forma de verificar se o navegador possui suporte a
Web Storage:
if(typeof(Storage)!=="undefined") {
//o browser suporta HTML 5 Web Storage
} else {
//o browser não suporta HTML 5 Web Storage
}
VERIFICAÇÃO DE SUPORTE

Uma forma de verificar se o navegador que está sendo
usado possui suporte a Web Storage é através do uso
da biblioteca Modernizr
if (!Modernizr.sessionstorage) {
// código alternativo para sessionStorage
}
if (!Modernizr.localstorage) {
// código alternativo para localStorage
}
if (!Modernizr.indexeddb) {
// código alternativo para indexedDB
}
GERENCIANDO O STORAGE PELO BROWSER

Alguns dos browsers mais atuais oferecem ferramentas
de auxílio ao desenvolvedor

Por exemplo, o Google Chrome permite visualizar os dados
armazenados do web storage, bem como editá-los e removêlos.
GERENCIANDO O STORAGE PELO BROWSER

Com a página aberta no Chrome

Pressione F12

Na parte inferior da janela abre uma aba com algumas opções

Clique na opção “Resources”

Em seguida, na estrutura de árvore da esquerda, clique na
opção “Local Storage” e no subitem “Local Files”

Os dados armazenados no web storage são apresentados do
lado direito
EXERCÍCIO PARA FIXAÇÃO

Desenvolva uma aplicação web que tenha um formulário
para coleta de dados

Use programação em 3 (três) camadas:
GUI – Responsável pela interface com o usuário e botões: incluir,
alterar, excluir, consultar (*.html)
 Classes de negócio – definem o objeto (propriedades = dados do
formulário; métodos set e get) (*.js)
 DAO – classe que contém os métodos para manipulação do BD
(storage) (*.js)

Pode usar localStorage
 Use JSON para serializar os dados em um par chave-valor

EXERCÍCIO PARA FIXAÇÃO

Referências

Além das referências citadas no slide, procure tutoriais HTML
5 no Google

Palavras-chave
HTML5 localStorage
 HTML5 localStorage com JSON

REFERÊNCIAS
 SILVA,
M. S. jQuery Mobile: desenvolva aplicações web para
dispositivos móveis com HTML 5, CSS3, Ajax, jQuery e jQuery
UI. São Paulo: Novatec, 2012.

Trabalhando com HTML5 Web Storage
http://www.linhadecodigo.com.br/artigo/3537/trabalhando-com-html5-web-storage.aspx
Download