1.Session Storage
sessionStorage 用于臨時保存同一窗口(或標簽頁)的數(shù)據(jù)蝴罪,在關閉窗口或標簽頁之后將會刪除這些數(shù)據(jù)。
使用:
存儲值:sessionStorage.setItem("key", "value")
刪除值(單個):sessionStorage.removeItem("key")
刪除全部值:sessionStorage.clear()
2.Local? Storage
在html5中,新加的特性,主要是用來作為本地存儲使用的的,解決了cookie存儲空間不足的問題褪那,localstorage中一般瀏覽器支持的5M幽纷,這個在不同的瀏覽器中l(wèi)ocalstorage會有所不同。localStorage的使用也是遵循同源策略的博敬,所以不同的網(wǎng)站直接是不能共用相同的localStorage
優(yōu)點:
1友浸、localStorage拓展了cookie的4K限制
2、localStorage可以將第一次請求的數(shù)據(jù)直接存儲到本地冶忱,這個相當于一個5M大小的針對于前端頁面的數(shù)據(jù)庫尾菇,相比于cookie可以節(jié)約帶寬,但局限是只有高版本的瀏覽器中才支持的
局限:
1囚枪、瀏覽器的大小不統(tǒng)一派诬,并且在IE8以上的IE版本才支持localStorage這個屬性
2、localStorage只支持string類型的存儲链沼,想要存儲JSON對象類型需要一些轉換
3默赂、localStorage在瀏覽器的隱私模式下面是不可讀取的
4、localStorage本質上是對字符串的讀取括勺,如果存儲內容多的話會消耗內存空間缆八,會導致頁面變卡
5、localStorage不能被爬蟲抓取到
使用:
保存:
window.localStorage.setItem(key, value)
window.localStorage[key]=value
window.localStorage.key = value
獲取:
var value = window.localStorage.getItem(key)
var value = window.localStorage[key]
var value = window.localStorage.key
刪除:
window.localStorage.removeItem(key)
window.localStorage.clear()
獲取鍵:
window.localStorage.key()
3.Cookie
1.什么是cookie疾捍,cookie的作用奈辰?
Cookie 用于存儲 web 頁面的用戶信息。
Cookie實際上是一小段的文本信息(key-value格式)乱豆〗鼻。客戶端向服務器發(fā)起請求,如果服務器需要記錄該用戶狀態(tài)宛裕,就使用response向客戶端瀏覽器發(fā)送一個Cookie瑟啃。客戶端瀏覽器會把Cookie保存起來揩尸。當瀏覽器再請求該網(wǎng)站時蛹屿,瀏覽器把請求的網(wǎng)址連同該Cookie一同提交給服務器。服務器檢查該Cookie岩榆,以此來辨認用戶狀態(tài)错负。
主要過程:
客戶端發(fā)送一個請求到服務器--->服務器發(fā)送一個httpResponse響應到客戶端其中包含set-cookie的頭部-->客戶端保存cookie,之后向服務器發(fā)送請求時朗恳,httpRequest請求中會包含一個cookie的頭部-->服務器返回響應
屬性項:
name=val? ? ? ? ? ?name不能和其他的屬性想名字一樣
Expires? ? ? ? ? ? ? ?過期時間湿颅,在設置的某個時間點后改cookie就會失效
Domain? ? ? ? ? ? ? ?生成該cookie的域名
Path? ? ? ? ? ? ? ? ? ? 該cookie是在當前的哪個路徑下生成的
Secure? ? ? ? ? ? ? ? 如果設置了這個屬性,那么只會在SSH連接時才會回傳該cookie
2.cookie的域名和路徑
Cookie是不可以跨域名的粥诫,隱私安全機制禁止網(wǎng)站非法獲取其他網(wǎng)站的Cookie油航。
正常情況下,同一個一級域名下的兩個二級域名也不能交互使用Cookie怀浆,比如test1.mcrwayfun.com和test2.mcrwayfun.com谊囚,因為二者的域名不完全相同怕享。如果想要mcrwayfun.com名下的二級域名都可以使用該Cookie,需要設置Cookie的domain參數(shù)為.mcrwayfun.com镰踏,這樣使用test1.mcrwayfun.com和test2.mcrwayfun.com就能訪問同一個cookie
path屬性決定允許訪問Cookie的路徑函筋。比如,設置為"/"表示允許所有路徑都可以使用Cookie
3.cookie的獲取
var cookies =?document.cookie
4.Indexed DB
5.Web SQL
6.Service Worker
主要是為了提高web app的用戶體驗奠伪,可以實現(xiàn)離線應用消息推送等等一系列的功能, 可以看做是一個獨立于瀏覽器的Javascript代理腳本, 在離線狀態(tài)下也能提供基本的功能跌帐。 出于安全性的考慮,Service Worker 只能在https協(xié)議下使用