LocalForage est un référentiel JavaScript rapide et simple. LocalForage améliore l'expérience hors ligne des applications Web en utilisant un stockage asynchrone (indexDDB ou WebSQL) et une simple API localstorage.
Dans les navigateurs qui ne prennent pas en charge IndededDB ou WebSQL, LocalForage utilise LocalStorage. Voir le wiki pour les détails de compatibilité.
En utilisant LocalForage, placez simplement le fichier JavaScript dans la page:
< script src =" localforage/dist/localforage.js " > </ script >
< script > localforage . getItem ( 'something' , myCallback ) ; </ script >Essayez l'exemple.
Téléchargez le dernier LocalForage sur GitHub ou installez-le via NPM:
npm install localforageOu par Bower:
bower install localforageLocalForage est également compatible.
Vous vous sentez confus? Besoin d'aide? Essayez la documentation de l'API LocalForage.
Si vous utilisez cette bibliothèque, exécutez des tests ou souhaitez contribuer à LocalForage, visitez irc.freenode.net et consultez le canal #localforage pour des questions sur LocalForage.
Le meilleur consultant est Tofumatt , dont l'heure en ligne est généralement de 10 h à 20 h, heure de Greenwich.
En commençant par Safari 10.1, la valeur par défaut est indexée; Voir Changelog pour plus.
Étant donné que LocalForage utilise un stockage asynchrone, l'API est asynchrone. À d'autres égards, c'est exactement la même chose que l'API localStorage.
LocalForage prend en charge deux API, vous pouvez utiliser le formulaire de fonction de rappel ou la promesse. Si vous n'êtes pas sûr de lequel est le meilleur pour vous, il est recommandé d'utiliser la promesse.
Voici un exemple de la forme d'une fonction de rappel:
localforage . setItem ( 'key' , 'value' , function ( err ) {
// 若 err 不为 null,则表示出错
localforage . getItem ( 'key' , function ( err , value ) {
// 若 err 不为 null,则表示出错,否则 value 为 key 对应的值
} ) ;
} ) ;Format de promesse:
localforage . setItem ( 'key' , 'value' ) . then ( function ( ) {
return localforage . getItem ( 'key' ) ;
} ) . then ( function ( value ) {
// 成功获取值
} ) . catch ( function ( err ) {
// 出错了
} ) ;Pour plus d'exemples, veuillez visiter la documentation de l'API.
Vous pouvez stocker n'importe quel type dans LocalForage; Contrairement à LocalStorage, seules les chaînes sont stockées. Même si le formulaire de stockage du backend est localStorage, LocalForage exécutera automatiquement JSON.parse() et JSON.stringify() lorsqu'il est nécessaire d'obtenir / définir la valeur.
Tant qu'il s'agit d'un objet JS natif qui peut être sérialisé en JSON, LocalForage peut être stocké, y compris des bergers, des blobs et des tapis. Dans la documentation de l'API, vous pouvez afficher tous les types de support localforage.
Tous les pilotes de stockage backend prennent en charge tous les types, mais LocalStorage a des restrictions de stockage, de sorte que de grands blobs ne peuvent pas être stockés.
Vous pouvez définir les informations de la base de données via config() . Les options disponibles sont driver , name , storeName , version , size et description .
Exemple:
localforage . config ( {
driver : localforage . WEBSQL , // 使用 WebSQL;也可以使用 setDriver()
name : 'myApp' ,
version : 1.0 ,
size : 4980736 , // 数据库的大小,单位为字节。现仅 WebSQL 可用
storeName : 'keyvaluepairs' , // 仅接受字母,数字和下划线
description : 'some description'
} ) ; ** Remarque: ** Avant l'interaction des données, vous devez d'abord appeler config() . C'est-à-dire que vous devez appeler config() avant d'utiliser getItem() , setItem() , removeItem() clear() , key() , keys() ou length() .
Grâce à la méthode createInstance , vous pouvez créer plusieurs instances locales de forage qui peuvent indiquer différents entrepôts de données. Toutes les options de configuration de la configuration sont disponibles.
var store = localforage . createInstance ( {
name : "nameHere"
} ) ;
var otherStore = localforage . createInstance ( {
name : "otherName"
} ) ;
// 设置某个数据仓库 key 的值不会影响到另一个数据仓库
store . setItem ( "key" , "value" ) ;
otherStore . setItem ( "key" , "value2" ) ; Vous pouvez utiliser LocalForage via requirejs:
define ( [ 'localforage' ] , function ( localforage ) {
// 作为回调函数
localforage . setItem ( 'mykey' , 'myvalue' , console . log ) ;
// 使用 Promise
localforage . setItem ( 'mykey' , 'myvalue' ) . then ( console . log ) ;
} ) ; LocalForage 1.3+ prend en charge Browserify et WebPack. Si vous utilisez une version antérieure de LocalForage et que vous avez des problèmes avec Browserify ou WebPack, passez à 1.3.0 ou version ultérieure.
Lorsque vous prédéfinissez un fichier JavaScript normal, WebPack peut inviter un message d'avertissement. Si vous ne voulez pas voir l'avertissement, vous pouvez utiliser la configuration suivante pour ignorer localforage lorsque l'analyse WebPack:
module : {
noParse : / node_modules/localforage/dist/localforage.js / ,
loaders : [ ... ] , Si vous définissez l'option de compilation allowSyntheticDefaultImports sur true dans tsconfig.json (prend en charge TypeScript v1.8 +), vous devez l'utiliser comme ceci:
import localForage from "localforage" ;Sinon, vous devez utiliser l'une des méthodes suivantes:
import * as localForage from "localforage" ;
// 若你用的 TypeScript 版本不支持 ES6 风格导入像 localForage 这样的 UMD 模块,则用如下方式导入:
import localForage = require ( "localforage" ) ; Si vous utilisez le framework suivant, LocalForage fournit des modules comme pilotes pour ces cadres et vous pouvez stocker les données hors ligne via LocalForage. Les moteurs du cadre pris en charge sont les suivants:
Si vous avez d'autres pilotes et que vous souhaitez les ajouter à cette liste, veuillez soumettre un problème.
Vous pouvez créer vos propres pilotes; Voir la documentation de l'API defineDriver .
Il y a une liste de pilotes personnalisés dans le wiki.
Vous devez avoir le nœud / npm et bower.
Pour développer LocalForage, vous devez d'abord débarquer et installer des dépendances. Remplacez USERNAME par votre nom d'utilisateur GitHub et exécutez la commande suivante:
# 若你没有安装过 bower,则需要先全局安装 bower
npm install -g bower
# 将 USERNAME 替换为你的 GitHub 用户名:
git clone [email protected]:USERNAME/localForage.git
cd localForage
npm install
bower installLes dépendances de bower manquantes entraîneront une défaillance du test!
PhantoMJS est nécessaire pour exécuter des tests locaux. Exécuter npm test (ou directement: grunt test ). Votre code doit passer la vérification de Linter.
LocalForage ne peut fonctionner que dans le navigateur, donc un environnement de navigateur est nécessaire pour effectuer des tests. Les tests locaux s'exécutent sur un navigateur WebKit sans tête (en utilisant des Phantomjs).
Grâce à Sauce Labs, LocalForage prend en charge Travis CI et les tests seront automatiquement effectués dans tous les navigateurs lorsque vous tirez la demande.
Ce programme est un logiciel gratuit; Le contrat de licence est une licence Apache.
Copyright (C) 2013-2016 Mozilla (contributeurs).