現(xiàn)在已經(jīng)不流行用cookie存儲數(shù)據(jù)了
cookie缺點:儲存大小太小了荚虚,僅4kv左右秒裕。單個域名下有數(shù)量限制账蓉,50個左右枚碗。污染請求頭,浪費流量铸本。
API
localstorage和sessionStorage
臨時儲存
setItem(key,value);
getItem(key);
removeItem(key);//一條一條移出數(shù)據(jù)
clear()//直接把所有的內(nèi)容全部清空
length//直接查看儲存的個數(shù)
賦值:
對象.key=value肮雨;
對象[key]=value;
特性
localStorage一般沒有儲存時間限制归敬。
sessionStorage這個存儲會在網(wǎng)頁會話結(jié)束后失效酷含,刷新網(wǎng)頁并不會使之失效,而是點擊關(guān)閉網(wǎng)頁汪茧,在重新打開會失效椅亚。
注意
存儲容量超出限制,拋出QuotaExcueededError
類型的限制舱污,只能儲存字符串呀舔,注意類型轉(zhuǎn)換。
相同URL不同標(biāo)簽頁不能共享sessionStorage
indexDB
IndexDB是一個NoSQL類型的數(shù)據(jù)庫(非關(guān)系型)
indexDB.open('數(shù)據(jù)庫名','版本號')
創(chuàng)建數(shù)據(jù)庫
函數(shù):
onsuccess數(shù)據(jù)庫創(chuàng)建或打開成功(如果指令成功媚赖,則執(zhí)行回調(diào)函數(shù))
onerror打開失斔瘛(如果指令失敗執(zhí)行的回調(diào)函數(shù))
result可以看到相關(guān)數(shù)據(jù)
onupgradeneede版本升級時觸發(fā)函數(shù)
indexDB.createObjectStore('表名')
創(chuàng)建表
indexDB.openCursor(range,direction)
創(chuàng)建游標(biāo)
range指定游標(biāo)范圍
direction游標(biāo)的方向
var request = indexDB.open();
var db = request.result;
var transaction = db.transaction('test3','readwrite');
var store = transaction.objectStore('test3');
var requestNode = store.openCusor(IDBKeyRange.only(200));
//參數(shù)一是范圍
IDBRange對象
direction對象
prev逆序查詢 prevunique逆序唯一查詢
next順序查詢 nextunique順序唯一查詢
設(shè)置主鍵
1惧磺、設(shè)置自增主鍵
autoIncrement:true
2颖对、取數(shù)據(jù)中字段作為主鍵
keyPath:字段名
IDBObjectStore.createIndex
indexName:索引名稱
keyPath:索引字段,可以為空或者數(shù)組(type array)
optionParameters:索引配置參數(shù)
store.createIndex(表名稱磨隘,數(shù)據(jù)key值缤底,{unique:true});
唯一性
var index =store.index(表名)get(key值的名稱).onsuccess = function(){
e.target.result 找到數(shù)據(jù)內(nèi)容
}
模式
readwrite 讀寫模式
readonly 只能讀不能寫
add 添加
put()繼續(xù)添加數(shù)據(jù)
delete刪除某一條數(shù)據(jù),參數(shù)是key值
clear刪除所有數(shù)據(jù)
get 里面放入key值就可以
getAll() 獲取全部的表中的json數(shù)據(jù)番捂,這是result是以數(shù)組的形式展現(xiàn)