摘要:獲取數(shù)據(jù)并使用回調(diào)函數(shù)移除對(duì)應(yīng)的鍵清除所有鍵。對(duì)數(shù)據(jù)庫(kù)中的每一個(gè)鍵值對(duì)調(diào)用回調(diào)函數(shù),回調(diào)函數(shù)的參數(shù)分別是鍵值鍵索引迭代次數(shù)基于。
前言
最近在看IDB,IDB是一種對(duì)象數(shù)據(jù)庫(kù)存儲(chǔ)方式,查詢數(shù)據(jù)有游標(biāo)法、事務(wù)法、索引法,使用的API很多,比較難記。
localForage是一個(gè)改善web-app離線數(shù)據(jù)存儲(chǔ)的JavaScript庫(kù),核心在于使用一個(gè)和localStorage類似的API,比較簡(jiǎn)單好記。而且存儲(chǔ)的數(shù)據(jù)類型不只是字符串,可以是數(shù)值、對(duì)象、布爾值、數(shù)組,但是undefined除外。默認(rèn)情況下,依次優(yōu)先采用使用IDB、WebSQL、localStorage進(jìn)行后臺(tái)存儲(chǔ)。
使用localForage只需要在頁(yè)面包含js文檔即可,下載鏈接:
https://github.com/localForag...
該項(xiàng)目的具體GITHUB地址
1)setItem(key, value, successCallback):創(chuàng)建一個(gè)鍵,參數(shù)是鍵名、鍵值、回調(diào)函數(shù),回調(diào)函數(shù)的參數(shù)是對(duì)應(yīng)的鍵值。
// Unlike localStorage, you can store non-strings. localforage.setItem("my array", [1, 2, "three"]).then(function(value) { // This will output `1`. console.log(value[0]); }).catch(function(err) { // This code runs if there were any errors console.log(err); });
2)getItem(key, successCallback):獲取數(shù)據(jù)并使用回調(diào)函數(shù)
localforage.getItem("somekey", function(err, value) { // Run this code once the value has been // loaded from the offline store. console.log(value); });
3)removeItem(key, successCallback):移除對(duì)應(yīng)的鍵
localforage.removeItem("somekey").then(function() { // Run this code once the key has been removed. console.log("Key is cleared!"); }).catch(function(err) { // This code runs if there were any errors console.log(err); });
4)clear(successCallback):清除所有鍵。
localforage.clear().then(function() { // Run this code once the database has been entirely deleted. console.log("Database is now empty."); }).catch(function(err) { // This code runs if there were any errors console.log(err); });
5)length(successCallback):獲得離線存儲(chǔ)的總的鍵數(shù)。
localforage.length().then(function(numberOfKeys) { // Outputs the length of the database. console.log(numberOfKeys); }).catch(function(err) { // This code runs if there were any errors console.log(err); });
6)key(keyIndex, successCallback):根據(jù)鍵索引得到鍵值。
7)keys(successCallback):得到所有的鍵索引。
8)iterate(iteratorCallback, successCallback):對(duì)數(shù)據(jù)庫(kù)中的每一個(gè)鍵值對(duì)調(diào)用回調(diào)函數(shù),回調(diào)函數(shù)的參數(shù)分別是鍵值、鍵索引、迭代次數(shù)(基于1)。
// The same code, but using ES6 Promises. localforage.iterate(function(value, key, iterationNumber) { // Resulting key/value pair -- this callback // will be executed for every item in the // database. console.log([key, value]); }).then(function() { console.log("Iteration has completed"); }).catch(function(err) { // This code runs if there were any errors console.log(err); });
或許并不一定要迭代所有的鍵值對(duì),此時(shí)只要返回一個(gè)非undefined類型值,就可以提前結(jié)束迭代,這個(gè)返回值會(huì)作為successCallback的參數(shù)。這個(gè)方法有點(diǎn)問題,返回的值不太對(duì):
Listing 2.1
前面提到,localForage在默認(rèn)情況下會(huì)優(yōu)先采用使用IDB、WebSQL、localStorage進(jìn)行后臺(tái)存儲(chǔ),但是可以通過setDriver()進(jìn)行后臺(tái)設(shè)置,如果設(shè)置的機(jī)制在當(dāng)前瀏覽器并不支持,則還是按照默認(rèn)選擇。
setDriver(driverName)/setDriver([driverName, nextDriverName]):設(shè)置后臺(tái)支持機(jī)制,參數(shù)是localforage.INDEXEDDB、localforage.WEBSQL、localforage.LOCALSTORAGE。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/80721.html
摘要:獲取數(shù)據(jù)并使用回調(diào)函數(shù)移除對(duì)應(yīng)的鍵清除所有鍵。對(duì)數(shù)據(jù)庫(kù)中的每一個(gè)鍵值對(duì)調(diào)用回調(diào)函數(shù),回調(diào)函數(shù)的參數(shù)分別是鍵值鍵索引迭代次數(shù)基于。 前言 最近在看IDB,IDB是一種對(duì)象數(shù)據(jù)庫(kù)存儲(chǔ)方式,查詢數(shù)據(jù)有游標(biāo)法、事務(wù)法、索引法,使用的API很多,比較難記。 localForage是一個(gè)改善web-app離線數(shù)據(jù)存儲(chǔ)的JavaScript庫(kù),核心在于使用一個(gè)和localStorage類似的API,...
摘要:離線存儲(chǔ)數(shù)據(jù)的建議對(duì)尋址資源,使用這是的一部分。在到達(dá)儲(chǔ)量限制之前,兩種存儲(chǔ)機(jī)制都會(huì)一直進(jìn)行存儲(chǔ)。則沒有對(duì)存儲(chǔ)量做出限制,只是在之后會(huì)彈出提醒。是異步的基于回調(diào)函數(shù),但它同樣不支持。也是異步的基于回調(diào)函數(shù),在和中可以工作雖然使用的是同步。 拖拖拉拉好久,終于把個(gè)人博客整出來了。鳴謝 @pinggod。 厚著臉安利一下,地址是 http://www.wemlion.com/。歡迎訪問,歡...
摘要:離線存儲(chǔ)數(shù)據(jù)的建議對(duì)尋址資源,使用這是的一部分。在到達(dá)儲(chǔ)量限制之前,兩種存儲(chǔ)機(jī)制都會(huì)一直進(jìn)行存儲(chǔ)。則沒有對(duì)存儲(chǔ)量做出限制,只是在之后會(huì)彈出提醒。是異步的基于回調(diào)函數(shù),但它同樣不支持。也是異步的基于回調(diào)函數(shù),在和中可以工作雖然使用的是同步。 拖拖拉拉好久,終于把個(gè)人博客整出來了。鳴謝 @pinggod。 厚著臉安利一下,地址是 http://www.wemlion.com/。歡迎訪問,歡...
摘要:簡(jiǎn)介離線存儲(chǔ),提供強(qiáng)大的封裝專業(yè)封裝給封裝類似類似接口如果你熟悉那一定會(huì)用使用類似的接口操作基于的瀏覽器端數(shù)據(jù)庫(kù)基于的瀏覽器端數(shù)據(jù)庫(kù)小型數(shù)據(jù)庫(kù),瀏覽器端基于風(fēng)格的接口,讓它非常可愛 查看原文 有些安全性不太重要的數(shù)據(jù),我不想花大力氣搞一臺(tái)服務(wù)器,再安裝mysql或者 monogdb,再寫點(diǎn)rest接口。這也太麻煩了,瀏覽器里本來就有很好用的數(shù)據(jù)庫(kù)。你為什么不嘗試一下呢? 1. 客戶端存...
摘要:簡(jiǎn)介離線存儲(chǔ),提供強(qiáng)大的封裝專業(yè)封裝給封裝類似類似接口如果你熟悉那一定會(huì)用使用類似的接口操作基于的瀏覽器端數(shù)據(jù)庫(kù)基于的瀏覽器端數(shù)據(jù)庫(kù)小型數(shù)據(jù)庫(kù),瀏覽器端基于風(fēng)格的接口,讓它非常可愛 查看原文 有些安全性不太重要的數(shù)據(jù),我不想花大力氣搞一臺(tái)服務(wù)器,再安裝mysql或者 monogdb,再寫點(diǎn)rest接口。這也太麻煩了,瀏覽器里本來就有很好用的數(shù)據(jù)庫(kù)。你為什么不嘗試一下呢? 1. 客戶端存...
閱讀 718·2021-11-22 13:52
閱讀 1527·2021-09-27 13:36
閱讀 2830·2021-09-24 09:47
閱讀 2188·2021-09-22 15:48
閱讀 3604·2021-09-22 15:39
閱讀 1473·2019-08-30 12:43
閱讀 2927·2019-08-29 18:39
閱讀 3195·2019-08-29 12:51