1. 程式人生 > 實用技巧 >499 本地儲存

499 本地儲存

  • 什麼時候會用到本地儲存?本地儲存的作用?

  • 1.記住使用者名稱和密碼、或者自動登入

  • 2.未登入狀態下,加入購物車的資訊一般也先儲存在本地,當登入後,把資訊儲存到伺服器上(目的是多平臺資料共享)

  • 3.對於非實時重新整理資料,可以從伺服器把資料獲取到後,臨時儲存在本地(設定有效時間),在有效時間內頁面重新整理,不再重新從伺服器獲取資料,而是讀取本地資料;超過有效時間重新從伺服器拉取... “前端效能優化的一點”

  • 4.還能實現同一個網站不同頁面之間的資訊共享和通訊

  • ......

  • 本地儲存到底儲存在哪了?

  • 1.本地儲存是受瀏覽器限制的,例如:在谷歌中儲存的資料,在IE中獲取不到

  • 2.受源(域)的限制,例如:都是用谷歌瀏覽器,我在京東下儲存的資料,在百度中是獲取不到的

  • 本地儲存的資訊在控制檯中可以檢視到(而且是明文儲存),所以敏感的資料儘可能不要儲存在本地,非要儲存也要做安全處理(例如:加密)

  • setItem([key],[value]): 儲存資訊

  • getItem([key]): 獲取資訊

  • removeItem([key]): 移除某一項資訊

  • clear(): 清除所有儲存的資訊

  • => 向本地儲存的資訊都是string字串格式

  • => localStorage 是持久化儲存在客戶端本地的(除非手動清除或者瀏覽器解除安裝等,否則一直儲存下來,沒有過期時間)

  • => sessionStorage 會話儲存(當前頁面重新整理,儲存資訊還在,但是隻要頁面一關閉,所有會話儲存的資訊都會消失)

  • 設定cookie => jquery.cookie.js

  • document.cookie="[key]=[value];..."

$.cookie('username', '哈哈');
console.log($.cookie('username'));
$.removecookie('username');
$.cookie('username', 'zhufeng', {
   expires: new Date(new Date().getTime() + 30 * 24 * 60 * 60 * 1000)
}); 
  • cookie VS localStorage
  • 1.大小限制:一般瀏覽器允許一個源下cookie最多儲存8KB,而localStorage被允許儲存最大的長度限制是5MB
  • 2.相容性:cookie相容所有瀏覽器,而localStorage是H5中新增的,不相容IE低版本瀏覽器(IE6~8)
  • 3.穩定性:cookie有過期時間,但是一般不等到時間可能就沒了(例如:清除瀏覽器的快取或者歷史資訊、安全衛士在清理電腦垃圾等操作時,都有可能會把儲存的cookie給清除掉),但是這些操作對localStorage沒有影響
  • 4.有時候瀏覽器會開啟無痕瀏覽或者隱私模式,此時無法設定cookie,但是可以設定localStorage的資訊
  • 5.和伺服器端的貓膩:cookie總是會和伺服器中的SESSION眉來眼去(客戶端和伺服器端互動的時候,cookie資訊會傳來傳去),而localStorage不屑於和他們同流合汙(localStorage和伺服器沒有必然的聯絡,是單純的本地儲存)
  • 6.儲存時間:cookie有過期時間,而localStorage是持久儲存