BT

Armazenamento Offline com o LocalForage

por João Paulo Marques , traduzido por Diogo Carleto em 03 Abr 2014 |

A fundação Mozilla lançou o localForage, uma nova biblioteca JavaScript que promete simplificar o processo de armazenamento de dados offline em aplicações web.

Embora não seja uma tecnologia recente nos navegadores, o suporte offline sempre foi muito fragmentado devido à várias opções disponíveis. O que torna esta biblioteca única é o fato que ela tenta combinar o melhor dos mundos: as funcionalidades de algumas das mais recentes tecnologias (assincronismo e suporte ao blob) com uma simples API. Isto oferece uma poderosa capacidade para aplicações web offline, tornando-os mais próximo de seus colegas móveis nativos e mais intuitivos para os desenvolvedores trabalharem.

Uma das primeiras alternativas disponíveis foi olocalStorage que provê acesso simples a dados para armazenamento offline. Entretanto testes de benchmark mostraram que ele é lento, síncrono e não pode manipular blobs binários (por exemplo, cachê de arquivos mp3 não é possível). Desde então, duas outras opções populares surgiram - IndexedDB e Web SQL - que são assíncronos, velozes e suportam grandes conjuntos de dados. A desvantagem destas duas tecnologias é o fato de suas APIs não serem muito simples de usar e também não serem suportados pela maioria dos navegadores.

O recente lançamento do localForage tenta resolver esses problemas unificando tecnologias - assincronismo e suporte a blob a partir do IndexedDB e Web SQL com a sintaxe simples do localStorage:

var settings = {color: 'black', font: 'Helvetica'};
localForage.setItem('settings', settings, function(result) {  
console.log(result);
});

A inclusão do suporte ao IndexedDB e Web SQL permite armazenar mais dados para aplicações web que o localStorage sozinho poderia armazenar. A natureza sem bloqueios da API torna as aplicações web mais rápidas pelo fato de não ter que manipular a thread principal e suas chamadas get/set. Adicionalmente, o localForage suporta callbacks e ES6 Promises deixando a escolha da melhor implementação para o desenvolvedor.

A biblioteca carrega e gerencia automaticamente os drivers para o IndexedDB, Web SQL e localStorage, assim não é necessário gerenciar isto manualmente (o melhor driver é escolhido independente do navegador em que a aplicação está sendo executada). Quando nem o IndexedDB nem o Web SQL estão disponíveis, localForage volta para o localStorage, assim pelo menos os dados básicos podem ser armazenados offline (embora sem suporte a blob e muito mais lento).

Todos navegadores modernos são suportados pelo localForage. O armazenamento assíncrono está disponível em todos navegadores, com a versão que suporta o localStorage em parenteses:

  • Navegador Android 2.1
  • BlackBerry 7
  • Chrome 23 (Chrome 4.0 com localStorage)
  • Chrome para o Android 32
  • Firefox 10 (Firefox 3.5 com localStorage)
  • Firefox para Android 25
  • IE 10 (IE 8 com localStorage)
  • IE Mobile 10
  • Opera 15 (Opera 10.5 com localStorage)
  • Opera Mobile 11
  • PhoneGap/Apache Cordova 1.2.0
  • Safari 3.1

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão

Dê sua opinião

Conteúdo educacional

Feedback geral
Bugs
Publicidade
Editorial
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2014 C4Media Inc.
Política de privacidade
BT