LocalForage ist ein schnelles und einfaches JavaScript -Repository. LocalForage verbessert das Offline-Erlebnis von Webanwendungen durch den asynchronen Speicher (IndexedDB oder WebsQL) und eine einfache lokalstor-ähnliche API.
In Browsern, die IndexedDB oder WebQL nicht unterstützen, verwendet LocalForage LocalStorage. Die Kompatibilitätsdetails finden Sie im Wiki.
Legen Sie die JavaScript -Datei mit LocalForage in die Seite ein:
< script src =" localforage/dist/localforage.js " > </ script >
< script > localforage . getItem ( 'something' , myCallback ) ; </ script >Probieren Sie das Beispiel aus.
Laden Sie die neueste Lokalverschreibung auf GitHub herunter oder installieren Sie sie über NPM:
npm install localforageOder durch Bower:
bower install localforageLokale Vermittlung ist auch browserieren kompatibel.
Fühlen Sie sich verwirrt? Benötigen Sie Hilfe? Probieren Sie die lokale API -Dokumentation aus.
Wenn Sie diese Bibliothek verwenden, Tests ausführen oder zu Local Forage beitragen möchten, besuchen Sie irc.freenode.net und wenden Sie sich an den #localforage -Kanal, um Fragen zu Local Forage zu erhalten.
Der beste Berater ist Tofumatt , dessen Online -Zeit in der Regel von 10 bis 20 Uhr Greenwich Time ist.
Beginnend mit Safari 10.1 wird der Standardeinsatz indexiert. Siehe ChangeLog für mehr.
Da LocalForage einen asynchronen Speicher verwendet, ist die API asynchron. In anderer Hinsicht ist es genau das gleiche wie die lokale API.
LocalForage unterstützt zwei APIs, Sie können das Formular oder das Versprechen von Callback -Funktionen verwenden. Wenn Sie nicht sicher sind, welches für Sie besser ist, wird empfohlen, Versprechen zu verwenden.
Hier ist ein Beispiel für die Form einer Rückruffunktion:
localforage . setItem ( 'key' , 'value' , function ( err ) {
// 若 err 不为 null,则表示出错
localforage . getItem ( 'key' , function ( err , value ) {
// 若 err 不为 null,则表示出错,否则 value 为 key 对应的值
} ) ;
} ) ;Versprechenformat:
localforage . setItem ( 'key' , 'value' ) . then ( function ( ) {
return localforage . getItem ( 'key' ) ;
} ) . then ( function ( value ) {
// 成功获取值
} ) . catch ( function ( err ) {
// 出错了
} ) ;Weitere Beispiele finden Sie in der API -Dokumentation.
Sie können jede Art in lokaler Vermittlung speichern. Im Gegensatz zu LocalStorage werden nur Saiten gespeichert. Auch wenn die Speicherform des Backend LocalStorage lautet, führt LocalForage automatisch JSON.parse() und JSON.stringify() aus, wenn der Wert erforderlich ist.
Solange es sich um ein natives JS -Objekt handelt, das in JSON serialisiert werden kann, kann die lokale Verschiebung gespeichert werden, einschließlich ArrayBuffer, Blobs und Typedarrays. In der API -Dokumentation können Sie alle Arten von lokaler Unterstützung unterstützen.
Alle Backend -Speicherfahrer unterstützen alle Typen, aber LocalStorage verfügt über Speicherbeschränkungen, sodass große Blobs nicht gespeichert werden können.
Sie können die Datenbankinformationen über config() -Methode festlegen. Die verfügbaren Optionen sind driver , name , storeName , version , size und description .
Beispiel:
localforage . config ( {
driver : localforage . WEBSQL , // 使用 WebSQL;也可以使用 setDriver()
name : 'myApp' ,
version : 1.0 ,
size : 4980736 , // 数据库的大小,单位为字节。现仅 WebSQL 可用
storeName : 'keyvaluepairs' , // 仅接受字母,数字和下划线
description : 'some description'
} ) ; ** Hinweis: ** Vor der Dateninteraktion müssen Sie zuerst config() aufrufen. Das heißt, Sie müssen config() aufrufen, bevor Sie getItem() , setItem() , removeItem() clear() , key() , keys() oder length() verwenden.
Mit der createInstance -Methode können Sie mehrere lokale Vermittlungsinstanzen erstellen, die auf verschiedene Data Warehouses hinweisen können. Alle Konfigurationsoptionen in Config sind verfügbar.
var store = localforage . createInstance ( {
name : "nameHere"
} ) ;
var otherStore = localforage . createInstance ( {
name : "otherName"
} ) ;
// 设置某个数据仓库 key 的值不会影响到另一个数据仓库
store . setItem ( "key" , "value" ) ;
otherStore . setItem ( "key" , "value2" ) ; Sie können LocalForage über RequiredJs verwenden:
define ( [ 'localforage' ] , function ( localforage ) {
// 作为回调函数
localforage . setItem ( 'mykey' , 'myvalue' , console . log ) ;
// 使用 Promise
localforage . setItem ( 'mykey' , 'myvalue' ) . then ( console . log ) ;
} ) ; LocalForage 1.3+ unterstützt Browserify und WebPack. Wenn Sie eine frühere Version von LocalForage verwenden und Probleme mit Browserify oder WebPack haben, upgraden Sie auf 1.3.0 oder höher.
Wenn WebPack eine normale JavaScript-Datei vorgefertigt hat, kann es zu einer Warnmeldung führen. Wenn Sie die Warnung nicht sehen möchten, können Sie die folgende Konfiguration verwenden, um localforage zu ignorieren, wenn das Webpack -Parsing:
module : {
noParse : / node_modules/localforage/dist/localforage.js / ,
loaders : [ ... ] , Wenn Sie die Option für true allowSyntheticDefaultImports Tsconfig.json (Unterstützt TypeScript v1.8+) festlegen können, sollten Sie sie so verwenden:
import localForage from "localforage" ;Andernfalls sollten Sie eine der folgenden Methoden verwenden:
import * as localForage from "localforage" ;
// 若你用的 TypeScript 版本不支持 ES6 风格导入像 localForage 这样的 UMD 模块,则用如下方式导入:
import localForage = require ( "localforage" ) ; Wenn Sie das folgende Framework verwenden, bietet LocalForage Module als Treiber für diese Frameworks und Sie können Daten offline über LocalForage speichern. Die unterstützten Framework -Treiber sind wie folgt:
Wenn Sie andere Treiber haben und diese zu dieser Liste hinzufügen möchten, geben Sie bitte ein Problem ein.
Sie können Ihre eigenen Treiber erstellen. Siehe die Dokumentation des defineDriver -API.
Es gibt eine Liste benutzerdefinierter Treiber im Wiki.
Sie müssen Node/NPM und Bower haben.
Um die lokale Verschiebung zu entwickeln, müssen Sie zuerst die Abhängigkeit entwickeln und Abhängigkeiten installieren. Ersetzen Sie USERNAME durch Ihren Github -Benutzernamen und führen Sie den folgenden Befehl aus:
# 若你没有安装过 bower,则需要先全局安装 bower
npm install -g bower
# 将 USERNAME 替换为你的 GitHub 用户名:
git clone [email protected]:USERNAME/localForage.git
cd localForage
npm install
bower installFehlende Bower -Abhängigkeiten verursachen Testfehler!
Phantomjs ist erforderlich, um lokale Tests durchzuführen. Führen Sie npm test aus (oder direkt: grunt test ). Ihr Code muss eine Linterprüfung bestehen.
Lokale Verschiebung kann nur im Browser ausgeführt werden, sodass eine Browserumgebung erforderlich ist, um Tests durchzuführen. Lokale Tests werden auf einem kopflosen Webkit -Browser (unter Verwendung von Phantomjs) durchgeführt.
Durch die Sauce Labs unterstützt LocalForage Travis CI und Tests werden automatisch in allen Browsern durchgeführt, wenn Sie die Anfrage ziehen.
Dieses Programm ist kostenlose Software; Die Lizenzvereinbarung ist die Apache -Lizenz.
Copyright (C) 2013-2016 Mozilla (Mitwirkende).