本地存儲:把一些信息存儲到客戶端本地(主要目的有很多,其中有一個就是實現多頁面之間的信息共用) 1. 離線緩存(xxx.manifest) H5處理離線緩存還是存在一些硬傷的,所以真實項目中一般還是傳統的NATIVE APP來完成這件事情 2. localStorage / sessionStora ...
本地存儲:把一些信息存儲到客戶端本地(主要目的有很多,其中有一個就是實現多頁面之間的信息共用) 1. 離線緩存(xxx.manifest) H5處理離線緩存還是存在一些硬傷的,所以真實項目中一般還是傳統的NATIVE APP來完成這件事情 2. localStorage / sessionStorage:H5中新增加的API,基於這個API可以把一些數據緩存到客戶端本地 (常用) 3. IndexedDB / webSQL :本地資料庫存儲 4. Cookie:本地信息存儲(常用) 5. CacheStorage / ApplicationCache:本地緩存存儲
用到本地存儲的地方: [頁面之間信息的通信] A存儲信息,B頁面中可以獲取 1. 登錄 2. 記住用戶名密碼(或者自動登錄) 3. 購物車 4. 跳轉到其它頁面,返回上級頁面的時候停留在之前最後一次 我們來看看本地存儲cookie和服務端session的具體做法及使用場景
[做一些性能優化] 把一些不經常改變的數據,在第一次從伺服器端獲取到之後,存儲到客戶端本地(記錄一個存儲時間),假設我們設置有效存儲期是10分鐘,那麼10分鐘以內,我們再刷新頁面,就不用再向伺服器發送請求了,直接從本地數據中獲取展示即可;超過10分鐘,從新向伺服器發送請求,請求回來最新數據參考第一次,也一樣存儲到本地中... 1. 可減輕伺服器壓力 2. 對於不經常更新的數據我們可以把存儲周期設置的長一些,有助於頁面第二次載入的時候,渲染的速度(移動端經常做這些事情) localStorage VS cookie [cookie] 1.相容所有的瀏覽器 2.有存儲的大小限制,一般一個源(一個域下)只能存儲4KB內容 3.cookie有過期時間(當然我們自己可以手動設置這個時間) 4.殺毒軟體或者瀏覽器的垃圾清理都可能會把cookie信息強制清除掉 5.在隱私或者無痕瀏覽模式下,是不記錄cookie的 6.cookie不是嚴格的本地存儲,因為要和伺服器之間來回傳輸
[localStorage] 1.不相容IE8及以下 2.也有存儲的大小限制,一個源下最多只能存儲5MB左右 3.本地永久存儲,只要你不手動刪除,永遠存儲在本地(但是我們可以基於API removeItem/clear手動清除一些自己想要刪除的信息) 4.殺毒軟體或者瀏覽器的垃圾清理暫時不會清除localStorage(新版本谷歌瀏覽器會清除localStorage等信息) 5.在隱私或者無痕瀏覽模式下,是記錄localStorage的 6.localStorage和伺服器沒有半毛錢關係 真實項目中使用本地存儲來完成一些需求的情況不是很多,一般都是基於伺服器的session或者資料庫存儲完成的(伺服器的session和本地的cookie是有關聯的),如果不考慮相容,就想基於本地存儲來完成一些事情,那麼一般都是用localStorage的(尤其是移動端開發)
localStorage.setItem([key],[value]):[value]必須是字元串格式的(即使寫的不是字元串,也會預設轉換為字元串) localStorage.getItem([key]):通過屬性名獲取存儲的信息 localStorage.removeItem([key]):刪除指定的存儲信息 localStorage.clear():清除當前域下存儲的所有信息 localStorage.key(0):基於索引獲取指定的KEY名
document.cookie='';//=>設置cookie