LocalForage es un repositorio de JavaScript rápido y simple. LaFerage Local mejora la experiencia fuera de línea de las aplicaciones web mediante el uso de almacenamiento asincrónico (indexedDB o WebSQL) y una API simple de almacenamiento local.
En los navegadores que no admiten IndexedDB o WebSQL, LocalForage usa LocalStorage. Vea el wiki para obtener detalles de compatibilidad.
Usando LocalForage, simplemente coloque el archivo JavaScript en la página:
< script src =" localforage/dist/localforage.js " > </ script >
< script > localforage . getItem ( 'something' , myCallback ) ; </ script >Prueba el ejemplo.
Descargue la últimaFera Local en GitHub, o instálelo a través de NPM:
npm install localforageO a través de Bower:
bower install localforageLaFerage Local también es compatible con Browserify.
¿Te sientes confundido? ¿Necesitar ayuda? Pruebe la documentación de la API local de laFFORAGE.
Si está utilizando esta biblioteca, ejecutando pruebas o desea contribuir a la comada local, visite irc.freenode.net y consulte al canal #localforage para obtener preguntas sobre el locales locales.
El mejor consultor es Tofumatt , cuyo tiempo en línea es generalmente de 10 a.m. a 8 p.m., hora de Greenwich.
Comenzando con Safari 10.1, el valor predeterminado es indexedDB; Ver ChangeLog para más.
Dado que LocalForage usa almacenamiento asincrónico, la API es asíncrona. En otros aspectos, es exactamente lo mismo que la API de LocalStorage.
LocalForage admite dos API, puede usar el formulario de función de devolución de llamada o promesa. Si no está seguro de cuál es mejor para usted, se recomienda usar Promise.
Aquí hay un ejemplo de la forma de una función de devolución de llamada:
localforage . setItem ( 'key' , 'value' , function ( err ) {
// 若 err 不为 null,则表示出错
localforage . getItem ( 'key' , function ( err , value ) {
// 若 err 不为 null,则表示出错,否则 value 为 key 对应的值
} ) ;
} ) ;Formato de promesa:
localforage . setItem ( 'key' , 'value' ) . then ( function ( ) {
return localforage . getItem ( 'key' ) ;
} ) . then ( function ( value ) {
// 成功获取值
} ) . catch ( function ( err ) {
// 出错了
} ) ;Para más ejemplos, visite la documentación de la API.
Puede almacenar cualquier tipo en la comada local; A diferencia de LocalStorage, solo se almacenan cadenas. Incluso si el formulario de almacenamiento del backend es LocalStorage, LocalForage ejecutará automáticamente JSON.parse() y JSON.stringify() cuando sea necesario obtener/establecer el valor.
Mientras sea un objeto JS nativo que se pueda serializar en JSON, se puede almacenar el enfrentamiento local, incluidos ArrayBuffers, Blobs y TypeDArrays. En la documentación de la API puede ver todos los tipos de soporte local de enfrentamiento.
Todos los controladores de almacenamiento de backend admiten todo tipo, pero LocalStorage tiene restricciones de almacenamiento, por lo que no se pueden almacenar grandes blobs.
Puede establecer la información de la base de datos a través config() . Las opciones disponibles son driver , name , storeName , version , size y description .
Ejemplo:
localforage . config ( {
driver : localforage . WEBSQL , // 使用 WebSQL;也可以使用 setDriver()
name : 'myApp' ,
version : 1.0 ,
size : 4980736 , // 数据库的大小,单位为字节。现仅 WebSQL 可用
storeName : 'keyvaluepairs' , // 仅接受字母,数字和下划线
description : 'some description'
} ) ; ** Nota: ** Antes de la interacción de datos, primero debe llamar config() . Es decir, debe llamar config() antes de usar getItem() , setItem() , removeItem() clear() , key() , keys() o length() .
A través del método createInstance , puede crear múltiples instancias locales de abogado que puedan apuntar a diferentes almacenes de datos. Todas las opciones de configuración en config están disponibles.
var store = localforage . createInstance ( {
name : "nameHere"
} ) ;
var otherStore = localforage . createInstance ( {
name : "otherName"
} ) ;
// 设置某个数据仓库 key 的值不会影响到另一个数据仓库
store . setItem ( "key" , "value" ) ;
otherStore . setItem ( "key" , "value2" ) ; Puede usar LocalForage a través de INSEXJS:
define ( [ 'localforage' ] , function ( localforage ) {
// 作为回调函数
localforage . setItem ( 'mykey' , 'myvalue' , console . log ) ;
// 使用 Promise
localforage . setItem ( 'mykey' , 'myvalue' ) . then ( console . log ) ;
} ) ; LocalForage 1.3+ admite Browserify y Webpack. Si está utilizando una versión anterior de LocalForage y tiene problemas con Browserify o Webpack, actualice a 1.3.0 o posterior.
Cuando se prepara previamente un archivo JavaScript normal, Webpack puede solicitar un mensaje de advertencia. Si no desea ver la advertencia, puede usar la siguiente configuración para ignorar localforage cuando el análisis de la pantalla web:
module : {
noParse : / node_modules/localforage/dist/localforage.js / ,
loaders : [ ... ] , Si establece la opción de compilación de allowSyntheticDefaultImports para true en tsconfig.json (admite TypeScript v1.8+), entonces debe usarla así:
import localForage from "localforage" ;De lo contrario, debe usar uno de los siguientes métodos:
import * as localForage from "localforage" ;
// 若你用的 TypeScript 版本不支持 ES6 风格导入像 localForage 这样的 UMD 模块,则用如下方式导入:
import localForage = require ( "localforage" ) ; Si utiliza el siguiente marco, LocalForage proporciona módulos como controladores para estos marcos, y puede almacenar datos fuera de línea a través de LocalForage. Los controladores de marco compatibles son los siguientes:
Si tiene otros controladores y desea agregarlos a esta lista, envíe un problema.
Puedes crear tus propios controladores; Vea la documentación de la API defineDriver .
Hay una lista de controladores personalizados en el wiki.
Necesita tener Node/NPM y Bower.
Para desarrollar el enfrentamiento local, debe desembolsar primero e instalar dependencias. Reemplace USERNAME con su nombre de usuario GitHub y ejecute el siguiente comando:
# 若你没有安装过 bower,则需要先全局安装 bower
npm install -g bower
# 将 USERNAME 替换为你的 GitHub 用户名:
git clone [email protected]:USERNAME/localForage.git
cd localForage
npm install
bower install¡Faltar las dependencias de la rueda causarán falla de prueba!
Se requiere PhantomJS para ejecutar pruebas locales. Ejecutar npm test (o directamente: grunt test ). Su código debe aprobar la verificación de los deladores.
Elforage local solo puede ejecutarse en el navegador, por lo que se requiere un entorno del navegador para realizar pruebas. Las pruebas locales se ejecutan en un navegador WebKit sin cabeza (usando PhantomJS).
A través de Sauce Labs, LocalForage admite Travis CI, y las pruebas se realizarán automáticamente en todos los navegadores cuando retire la solicitud.
Este programa es software libre; El acuerdo de licencia es la licencia Apache.
Copyright (c) 2013-2016 Mozilla (contribuyentes).