Localforageは、高速でシンプルなJavaScriptリポジトリです。 Localforageは、非同期ストレージ(IndexEdDBまたはWebQL)とシンプルなLocalStorageのようなAPIを使用して、Webアプリケーションのオフラインエクスペリエンスを改善します。
IndexEdDBまたはWebQLをサポートしていないブラウザでは、LocalForageはLocalStorageを使用しています。互換性の詳細については、Wikiを参照してください。
LocalForageを使用して、JavaScriptファイルをページに入れるだけです。
< script src =" localforage/dist/localforage.js " > </ script >
< script > localforage . getItem ( 'something' , myCallback ) ; </ script >例を試してください。
GitHubで最新のLocalforageをダウンロードするか、NPM経由でインストールしてください。
npm install localforageまたはバウアーを通して:
bower install localforageまた、LocalForageは互換性があることもブラウジーしています。
混乱していると感じますか?助けが必要ですか? Localforage APIドキュメントをお試しください。
このライブラリを使用している場合、テストを実行している場合、またはLocalforageに貢献したい場合は、IRC.freenode.netにアクセスして、Localforageに関する質問については#localforageチャネルに相談してください。
最高のコンサルタントはTofumattで、そのオンライン時間は通常午前10時から午後8時までグリニッジ時間です。
Safari 10.1から始めて、デフォルトはindexedDBです。詳細については、changelogを参照してください。
Localforageは非同期ストレージを使用するため、APIは非同期です。他の点では、LocalStorage APIとまったく同じです。
Localforageは2つのAPIをサポートしており、コールバック関数フォームまたはPromiseを使用できます。どちらがあなたにとってより良いかわからない場合は、約束を使用することをお勧めします。
コールバック関数の形式の例は次のとおりです。
localforage . setItem ( 'key' , 'value' , function ( err ) {
// 若 err 不为 null,则表示出错
localforage . getItem ( 'key' , function ( err , value ) {
// 若 err 不为 null,则表示出错,否则 value 为 key 对应的值
} ) ;
} ) ;約束形式:
localforage . setItem ( 'key' , 'value' ) . then ( function ( ) {
return localforage . getItem ( 'key' ) ;
} ) . then ( function ( value ) {
// 成功获取值
} ) . catch ( function ( err ) {
// 出错了
} ) ;その他の例については、APIドキュメントをご覧ください。
任意のタイプをLocalforageに保存できます。 LocalStorageとは異なり、文字列のみが保存されます。バックエンドのストレージフォームがLocalStorageである場合でも、LocalForageは、値を取得/設定する必要がある場合にJSON.parse()およびJSON.stringify()を自動的に実行します。
JSONにシリアル化できるネイティブJSオブジェクトである限り、ArrayBuffer、Blobs、TypedArrayなど、Localforageを保存できます。 APIドキュメントでは、あらゆる種類のLocalforageサポートを表示できます。
すべてのバックエンドストレージドライバーはすべてのタイプをサポートしていますが、LocalStorageにはストレージ制限があるため、大きな塊を保存できません。
config()メソッドを使用してデータベース情報を設定できます。利用可能なオプションは、 driver 、 name 、 storeName 、 version 、 size 、およびdescriptionです。
例:
localforage . config ( {
driver : localforage . WEBSQL , // 使用 WebSQL;也可以使用 setDriver()
name : 'myApp' ,
version : 1.0 ,
size : 4980736 , // 数据库的大小,单位为字节。现仅 WebSQL 可用
storeName : 'keyvaluepairs' , // 仅接受字母,数字和下划线
description : 'some description'
} ) ; **注:**データインタラクションの前に、最初にconfig()を呼び出す必要があります。つまり、 getItem() 、 setItem() 、 removeItem() clear() 、 key() 、 keys()またはlength()を使用する前に、 config()を呼び出す必要があります。
createInstanceメソッドを使用して、さまざまなデータウェアハウスを指すことができる複数のLocalforageインスタンスを作成できます。構成のすべての構成オプションが利用可能です。
var store = localforage . createInstance ( {
name : "nameHere"
} ) ;
var otherStore = localforage . createInstance ( {
name : "otherName"
} ) ;
// 设置某个数据仓库 key 的值不会影响到另一个数据仓库
store . setItem ( "key" , "value" ) ;
otherStore . setItem ( "key" , "value2" ) ; requirejsを介してLocalforageを使用できます。
define ( [ 'localforage' ] , function ( localforage ) {
// 作为回调函数
localforage . setItem ( 'mykey' , 'myvalue' , console . log ) ;
// 使用 Promise
localforage . setItem ( 'mykey' , 'myvalue' ) . then ( console . log ) ;
} ) ; Localforage 1.3+は、BrowserifyとWebpackをサポートしています。 Localforageの以前のバージョンを使用していて、browserifyまたはwebpackに問題がある場合は、1.3.0以降にアップグレードします。
通常のJavaScriptファイルを事前に構築すると、Webpackは警告メッセージを促す場合があります。警告が表示されたくない場合は、次の構成を使用して、Webpackの解析時にlocalforage無視できます。
module : {
noParse : / node_modules/localforage/dist/localforage.js / ,
loaders : [ ... ] , tsconfig.json(typeScript v1.8+をサポート)でtrueにallowSyntheticDefaultImportsコンパイルオプションを設定した場合、次のように使用する必要があります。
import localForage from "localforage" ;それ以外の場合は、次の方法のいずれかを使用する必要があります。
import * as localForage from "localforage" ;
// 若你用的 TypeScript 版本不支持 ES6 风格导入像 localForage 这样的 UMD 模块,则用如下方式导入:
import localForage = require ( "localforage" ) ; 次のフレームワークを使用する場合、LocalForageはこれらのフレームワークのドライバーとしてモジュールを提供し、LocalForageを介してデータをオフラインで保存できます。サポートされているフレームワークドライバーは次のとおりです。
他のドライバーがいて、このリストにそれらを追加したい場合は、問題を提出してください。
独自のドライバーを作成できます。 defineDriver APIドキュメントを参照してください。
Wikiにはカスタムドライバーのリストがあります。
ノード/npmとbowerが必要です。
Localforageを開発するには、最初にフォークして依存関係をインストールする必要があります。 USERNAME githubユーザー名に置き換え、次のコマンドを実行します。
# 若你没有安装过 bower,则需要先全局安装 bower
npm install -g bower
# 将 USERNAME 替换为你的 GitHub 用户名:
git clone [email protected]:USERNAME/localForage.git
cd localForage
npm install
bower installバワーの依存関係が欠けていると、テストの障害が発生します!
Phantomjsは、ローカルテストを実行するために必要です。 npm testを実行します(または直接: grunt test )。あなたのコードは、リナーチェックに合格する必要があります。
LocalForageはブラウザでのみ実行できます。そのため、テストを実行するにはブラウザ環境が必要です。ローカルテストは、ヘッドレスWebKitブラウザで実行されます(PhantomJSを使用)。
ソースラボを通じて、LocalforageはTravis CIをサポートし、リクエストをプルするとすべてのブラウザでテストが自動的に実行されます。
このプログラムはフリーソフトウェアです。ライセンス契約はApacheライセンスです。
Copyright(c)2013-2016 Mozilla(貢献者)。