頁面緩存、離線存儲技術localforage(介紹篇)

改進的離線存儲

localForage 是一個 JavaScript 庫,經過簡單相似 localStorage API 的異步存儲來改進你的 Web 應用程序的離線體驗。它能存儲多種類型的數據,而不單單是字符串。es6

localForage 有一個優雅降級策略,若瀏覽器不支持 IndexedDB 或 WebSQL,則使用 localStorage。在全部主流瀏覽器中均可用:Chrome,Firefox,IE 和 Safari(包括 Safari Mobile)。數據庫

localForage 提供回調 API 同時也支持 ES6 Promises API,你能夠自行選擇。

安裝

使用 localForage,請 下載最新版本 或使用 npm(npm install localforage)或 bower(bower install localforage)進行安裝。npm

而後,只需包含 JS 文件便可使用 localForage:。你不須要運行任何初始化方法或等待 onready 事件。後端

API數據

GETITEM

getItem(key, successCallback)api

從倉庫中獲取 key 對應的值並將結果提供給回調函數。若是 key 不存在,getItem() 將返回 null。promise

** 當存儲 undefined 時, getItem() 也會返回 null。因爲 localStorage 限制,同時出於兼容性的緣由 localForage 沒法存儲 undefined。瀏覽器

SETITEM

setItem(key, value, successCallback)異步

將數據保存到離線倉庫。你能夠存儲以下類型的 JavaScript 對象:函數

. Array
. ArrayBuffer
. Blob
. Float32Array
. Float64Array
. Int8Array
. Int16Array
. Int32Array
. Number
. Object
. Uint8Array
. Uint8ClampedArray
. Uint16Array
. Uint32Array
. String對象

** 當使用 localStorage 和 WebSQL 做爲後端時,二進制數據在保存(和檢索)以前會被序列化。在保存二進制數據時,序列化會致使大小增大。

REMOVEITEM

removeItem(key, successCallback)

從離線倉庫中刪除 key 對應的值。

CLEAR

clear(successCallback)

從數據庫中刪除全部的 key,重置數據庫。

localforage.clear() 將會刪除離線倉庫中的全部值。謹慎使用此方法。

LENGTH

length(successCallback)

獲取離線倉庫中的 key 的數量(即數據倉庫的「長度」)。

KEY

key(keyIndex, successCallback)

根據 key 的索引獲取其名

** 雖然是從 localStorage API 延續而來的,但此方法被認爲有點怪異。

KEYS

keys(successCallback)

獲取數據倉庫中全部的 key。

ITERATE

iterate(iteratorCallback, successCallback)

迭代數據倉庫中的全部 value/key 鍵值對。

iteratorCallback 在每個鍵值對上都會調用一次,其參數以下: 1. value 爲值 2. key 爲鍵名 3. iterationNumber 爲迭代索引 - 數字

** 經過在 iteratorCallback 回調函數中返回一個非 undefined 的值,能提早退出 iterate。iteratorCallback 的返回值即做爲整個迭代的結果,將被傳入 successCallback。

這意味着若是你使用的是 CoffeeScript,那麼你須要手動執行一個不帶內容的 return 語句才能繼續迭代全部的 key/value 鍵值對。

相關文章
相關標籤/搜索