LocalForage adalah repositori JavaScript yang cepat dan sederhana. LocalForage meningkatkan pengalaman offline aplikasi web dengan menggunakan penyimpanan asinkron (IndexedDB atau WebSQL) dan API seperti LocalStorage sederhana.
Di browser yang tidak mendukung IndexedDB atau WebSQL, LocalForage menggunakan LocalStorage. Lihat wiki untuk detail kompatibilitas.
Menggunakan LocalForage, cukup masukkan file JavaScript ke dalam halaman:
< script src =" localforage/dist/localforage.js " > </ script >
< script > localforage . getItem ( 'something' , myCallback ) ; </ script >Coba contohnya.
Unduh LocalForage terbaru di GitHub, atau instal melalui NPM:
npm install localforageAtau melalui Bower:
bower install localforageLocalForage juga kompatibel browserifikasi.
Merasa bingung? Butuh bantuan? Coba dokumentasi API LocalForage.
Jika Anda menggunakan pustaka ini, menjalankan tes atau ingin berkontribusi ke LocalForage, kunjungi irc.freenode.net dan konsultasikan dengan saluran #localforage untuk pertanyaan tentang LocalForage.
Konsultan terbaik adalah Tofumatt , yang waktu daringnya umumnya jam 10 pagi - 8 malam Greenwich waktu.
Dimulai dengan Safari 10.1, standarnya adalah indexeddb; Lihat Changelog untuk lebih lanjut.
Karena LocalForage menggunakan penyimpanan asinkron, API tidak sinkron. Dalam hal lain, itu persis sama dengan API LocalStorage.
LocalForage mendukung dua API, Anda dapat menggunakan formulir atau janji fungsi callback. Jika Anda tidak yakin mana yang lebih baik untuk Anda, maka disarankan untuk menggunakan janji.
Berikut adalah contoh bentuk fungsi panggilan balik:
localforage . setItem ( 'key' , 'value' , function ( err ) {
// 若 err 不为 null,则表示出错
localforage . getItem ( 'key' , function ( err , value ) {
// 若 err 不为 null,则表示出错,否则 value 为 key 对应的值
} ) ;
} ) ;Format janji:
localforage . setItem ( 'key' , 'value' ) . then ( function ( ) {
return localforage . getItem ( 'key' ) ;
} ) . then ( function ( value ) {
// 成功获取值
} ) . catch ( function ( err ) {
// 出错了
} ) ;Untuk contoh lebih lanjut, silakan kunjungi dokumentasi API.
Anda dapat menyimpan jenis apa pun di Localforage; Tidak seperti LocalStorage, hanya string yang disimpan. Bahkan jika bentuk penyimpanan backend adalah LocalStorage, LocalForage secara otomatis akan mengeksekusi JSON.parse() dan JSON.stringify() ketika diperlukan untuk mendapatkan/mengatur nilainya.
Selama itu adalah objek JS asli yang dapat diserialisasi menjadi JSON, Localforage dapat disimpan, termasuk arraybuffer, gumpalan dan typedarrays. Dalam dokumentasi API, Anda dapat melihat semua jenis dukungan forage local.
Semua driver penyimpanan backend mendukung semua jenis di, tetapi LocalStorage memiliki batasan penyimpanan, sehingga gumpalan besar tidak dapat disimpan.
Anda dapat mengatur informasi database melalui metode config() . Opsi yang tersedia adalah driver , name , storeName , version , size , dan description .
Contoh:
localforage . config ( {
driver : localforage . WEBSQL , // 使用 WebSQL;也可以使用 setDriver()
name : 'myApp' ,
version : 1.0 ,
size : 4980736 , // 数据库的大小,单位为字节。现仅 WebSQL 可用
storeName : 'keyvaluepairs' , // 仅接受字母,数字和下划线
description : 'some description'
} ) ; ** Catatan: ** Sebelum interaksi data, Anda harus menelepon config() terlebih dahulu. Artinya, Anda harus menelepon config() sebelum menggunakan getItem() , setItem() , removeItem() clear() , key() , keys() atau length() .
Melalui metode createInstance , Anda dapat membuat beberapa contoh localforage yang dapat menunjuk ke berbagai gudang data. Semua opsi konfigurasi di konfigurasi tersedia.
var store = localforage . createInstance ( {
name : "nameHere"
} ) ;
var otherStore = localforage . createInstance ( {
name : "otherName"
} ) ;
// 设置某个数据仓库 key 的值不会影响到另一个数据仓库
store . setItem ( "key" , "value" ) ;
otherStore . setItem ( "key" , "value2" ) ; Anda dapat menggunakan LocalForage melalui Persyaratan:
define ( [ 'localforage' ] , function ( localforage ) {
// 作为回调函数
localforage . setItem ( 'mykey' , 'myvalue' , console . log ) ;
// 使用 Promise
localforage . setItem ( 'mykey' , 'myvalue' ) . then ( console . log ) ;
} ) ; LocalForage 1.3+ mendukung Browserify dan Webpack. Jika Anda menggunakan versi LocalForage sebelumnya dan memiliki masalah dengan Browserify atau Webpack, tingkatkan ke 1.3.0 atau lebih baru.
Saat pra-dibangun file JavaScript normal, Webpack dapat meminta pesan peringatan. Jika Anda tidak ingin melihat peringatan, Anda dapat menggunakan konfigurasi berikut untuk mengabaikan localforage saat penguraian webpack:
module : {
noParse : / node_modules/localforage/dist/localforage.js / ,
loaders : [ ... ] , Jika Anda mengatur opsi Kompilasi allowSyntheticDefaultImports ke true di tsconfig.json (mendukung TypeScript v1.8+), maka Anda harus menggunakannya seperti ini:
import localForage from "localforage" ;Jika tidak, Anda harus menggunakan salah satu metode berikut:
import * as localForage from "localforage" ;
// 若你用的 TypeScript 版本不支持 ES6 风格导入像 localForage 这样的 UMD 模块,则用如下方式导入:
import localForage = require ( "localforage" ) ; Jika Anda menggunakan kerangka kerja berikut, LocalForage menyediakan modul sebagai driver untuk kerangka kerja ini, dan Anda dapat menyimpan data secara offline melalui LocalForage. Driver kerangka yang didukung adalah sebagai berikut:
Jika Anda memiliki driver lain dan ingin menambahkannya ke daftar ini, silakan kirimkan masalah.
Anda dapat membuat driver Anda sendiri; Lihat dokumentasi API defineDriver .
Ada daftar driver khusus di wiki.
Anda harus memiliki Node/NPM dan Bower.
Untuk mengembangkan LocalForage, Anda perlu membayar lebih dulu dan menginstal dependensi. Ganti USERNAME dengan nama pengguna GitHub Anda dan jalankan perintah berikut:
# 若你没有安装过 bower,则需要先全局安装 bower
npm install -g bower
# 将 USERNAME 替换为你的 GitHub 用户名:
git clone [email protected]:USERNAME/localForage.git
cd localForage
npm install
bower installKetergantungan Bower yang hilang akan menyebabkan kegagalan tes!
Phantomjs diperlukan untuk melaksanakan tes lokal. Jalankan npm test (atau langsung: grunt test ). Kode Anda harus lulus cek linter.
LocalForage hanya dapat berjalan di browser, sehingga lingkungan browser diperlukan untuk melakukan tes. Tes lokal dijalankan di browser Webkit tanpa kepala (menggunakan phantomjs).
Melalui Saus Labs, LocalForage mendukung Travis CI, dan tes akan secara otomatis dilakukan di semua browser saat Anda menarik permintaan.
Program ini adalah perangkat lunak gratis; Perjanjian lisensi adalah lisensi Apache.
Hak Cipta (C) 2013-2016 Mozilla (Kontributor).