LocalForage é um repositório JavaScript rápido e simples. O LocalForage melhora a experiência offline dos aplicativos da Web usando o armazenamento assíncrono (indexedDB ou WebSQL) e uma API simples do tipo LocalStorage.
Nos navegadores que não suportam IndexedDB ou WebSQL, o LocalForage usa o LocalStorage. Veja o wiki para obter detalhes de compatibilidade.
Usando o LocalForage, basta colocar o arquivo JavaScript na página:
< script src =" localforage/dist/localforage.js " > </ script >
< script > localforage . getItem ( 'something' , myCallback ) ; </ script >Experimente o exemplo.
Faça o download do mais recente localForage no Github ou instale -o via NPM:
npm install localforageOu através de Bower:
bower install localforageO LocalForage também é compatível com o BrowSerify.
Sentindo -se confuso? Precisar de ajuda? Experimente a documentação da API do LocalForage.
Se você estiver usando esta biblioteca, executando testes ou deseja contribuir para o local FORAGE, visite irc.freenode.net e consulte o canal #localforage para obter perguntas sobre o local de instalação.
O melhor consultor é Tofumatt , cujo tempo on -line é geralmente das 10h às 20h Greenwich Time.
Começando com o Safari 10.1, o padrão é indexedDB; Veja Changelog para mais.
Como o LocalForage usa armazenamento assíncrono, a API é assíncrona. Em outros aspectos, é exatamente o mesmo que a API LocalStorage.
O LocalForage suporta duas APIs, você pode usar o formulário ou promessa de função de retorno de chamada. Se você não tem certeza de qual é melhor para você, é recomendável usar a promessa.
Aqui está um exemplo da forma de uma função de retorno de chamada:
localforage . setItem ( 'key' , 'value' , function ( err ) {
// 若 err 不为 null,则表示出错
localforage . getItem ( 'key' , function ( err , value ) {
// 若 err 不为 null,则表示出错,否则 value 为 key 对应的值
} ) ;
} ) ;Formato de promessa:
localforage . setItem ( 'key' , 'value' ) . then ( function ( ) {
return localforage . getItem ( 'key' ) ;
} ) . then ( function ( value ) {
// 成功获取值
} ) . catch ( function ( err ) {
// 出错了
} ) ;Para mais exemplos, visite a documentação da API.
Você pode armazenar qualquer tipo no local da FORAGE; Ao contrário do LocalStorage, apenas as cordas são armazenadas. Mesmo que o formulário de armazenamento do back -end seja o LocalSorage, o LocalForage executará automaticamente JSON.parse() e JSON.stringify() quando for necessário obter/definir o valor.
Desde que seja um objeto JS nativo que possa ser serializado no JSON, o local do local pode ser armazenado, incluindo matrizes, blobs e tipedarrays. Na documentação da API, você pode visualizar todos os tipos de suporte local paraforma.
Todos os drivers de armazenamento de back -end suportam todos os tipos, mas o LocalStorage possui restrições de armazenamento, para que bolhas grandes não possam ser armazenadas.
Você pode definir as informações do banco de dados através config() . As opções disponíveis são driver , name , storeName , version , size e description .
Exemplo:
localforage . config ( {
driver : localforage . WEBSQL , // 使用 WebSQL;也可以使用 setDriver()
name : 'myApp' ,
version : 1.0 ,
size : 4980736 , // 数据库的大小,单位为字节。现仅 WebSQL 可用
storeName : 'keyvaluepairs' , // 仅接受字母,数字和下划线
description : 'some description'
} ) ; ** NOTA: ** Antes da interação dos dados, você deve ligar config() primeiro. Isto é, você deve ligar config() antes de usar getItem() , setItem() , removeItem() clear() , key() , keys() ou length() .
Através do método createInstance , você pode criar várias instâncias do local de conformidade que podem apontar para diferentes data warehouses. Todas as opções de configuração na configuração estão disponíveis.
var store = localforage . createInstance ( {
name : "nameHere"
} ) ;
var otherStore = localforage . createInstance ( {
name : "otherName"
} ) ;
// 设置某个数据仓库 key 的值不会影响到另一个数据仓库
store . setItem ( "key" , "value" ) ;
otherStore . setItem ( "key" , "value2" ) ; Você pode usar o LocalForage via requerjs:
define ( [ 'localforage' ] , function ( localforage ) {
// 作为回调函数
localforage . setItem ( 'mykey' , 'myvalue' , console . log ) ;
// 使用 Promise
localforage . setItem ( 'mykey' , 'myvalue' ) . then ( console . log ) ;
} ) ; O LocalForage 1.3+ suporta o BrowSerify e o WebPack. Se você estiver usando uma versão anterior do LocalForage e tiver problemas com o BrowSerify ou Webpack, atualize para 1.3.0 ou posterior.
Quando pré-construído um arquivo JavaScript normal, o WebPack pode solicitar uma mensagem de aviso. Se você não quiser ver o aviso, pode usar a seguinte configuração para ignorar localforage quando o Webpack Parsing:
module : {
noParse : / node_modules/localforage/dist/localforage.js / ,
loaders : [ ... ] , Se você definir a opção de compilação allowSyntheticDefaultImports como true em tsconfig.json (suporta o TypeScript v1.8+), você deve usá -lo assim:
import localForage from "localforage" ;Caso contrário, você deve usar um dos seguintes métodos:
import * as localForage from "localforage" ;
// 若你用的 TypeScript 版本不支持 ES6 风格导入像 localForage 这样的 UMD 模块,则用如下方式导入:
import localForage = require ( "localforage" ) ; Se você usar a seguinte estrutura, o LocalForage fornece módulos como drivers para essas estruturas e você poderá armazenar dados offline através do LocalForage. Os drivers da estrutura suportados são os seguintes:
Se você tiver outros drivers e deseja adicioná -los a esta lista, envie um problema.
Você pode criar seus próprios drivers; Veja a documentação da API defineDriver .
Há uma lista de drivers personalizados no wiki.
Você precisa ter nó/npm e bower.
Para desenvolver o LocalForage, você precisa gastar primeiro e instalar dependências. Substitua USERNAME pelo seu nome de usuário do github e execute o seguinte comando:
# 若你没有安装过 bower,则需要先全局安装 bower
npm install -g bower
# 将 USERNAME 替换为你的 GitHub 用户名:
git clone [email protected]:USERNAME/localForage.git
cd localForage
npm install
bower installA falta de dependências do Bower causará falha no teste!
Phantomjs é necessário para executar testes locais. Execute npm test (ou diretamente: grunt test ). Seu código deve passar na verificação do Linter.
O LocalForage só pode ser executado no navegador, portanto, é necessário um ambiente de navegador para realizar testes. Os testes locais são executados em um navegador WebKit sem cabeça (usando Phantomjs).
Através do molho Labs, o LocalForage suporta o Travis CI e os testes serão executados automaticamente em todos os navegadores ao receber a solicitação.
Este programa é software livre; O contrato de licença é a licença do Apache.
Copyright (c) 2013-2016 Mozilla (colaboradores).