web本地儲存
隨著網際網路的快速發展,基於網頁的應用越來越普遍,同時也變的越來越複雜,為了滿足各種各樣的需求,會經常性在本地儲存大量的資料,傳統方式我們以document.cookie來進行儲存的,但是由於其儲存大小隻有4k左右,並且解析也相當的複雜,每一次傳送請求都會攜帶上cookie,會造成頻寬的浪費,給開發帶來諸多不便,HTML5規範則提出解決方案。
web儲存的含義是將資料儲存到使用者的電腦上,這樣可以緩解伺服器的壓力,並且提高體驗。
1 特性
1、設定、讀取方便。
2、容量較大,sessionStorage約5M、localStorage約20M。
3、只能儲存字串,可以將物件JSON.stringify() 編碼後儲存。
2 window.sessionStorage
1、生命週期為關閉當前頁面視窗。
2、不能多視窗下資料可以共享 (同源策略,百度家的local阿里他們家是拿不到)。
補充:透過跳轉可以 。
運用場景:
1、頁面跳轉的時候可以透過session實現資料共享。
2、在一些單頁面(spa)的運用中,進行頁面傳值的時候比較有用。
3 window.localStorage
1、永久生效,除非手動刪除或用程式碼刪除。
2、可以多視窗共享(同源策略)。
運用場景:一些不涉及到安全的一些資料(不要太過龐大)都可以儲存到本地。
4 方法詳解
setItem(key, value) 設定儲存內容
window.localStorage/sessionStorage.setItem(key,value);
getItem(key) 讀取儲存內容
window.localStorage/sessionStorage.getItem(key,value);
removeItem(key) 刪除鍵值為key的儲存內容
window.localStorage/sessionStorage.removeItem(key,value);
clear() 清空所有儲存內容
window.localStorage/sessionStorage.empty();
key(n) 以索引值來獲取鍵名
window.localStorage/sessionStorage.key(n);
length 儲存的資料的個數
window.localStorage/sessionStorage.length;
區別:
cookie資料 : 始終在同源的http請求中攜帶(即使不需要),即cookie在瀏覽器和伺服器間來回傳遞。而sessionStorage和localStorage不會自動把資料發給伺服器,僅在本地儲存。cookie資料還有路徑(path)的概念,可以限制cookie只屬於某個路徑下。儲存大小限制也不同,cookie資料不能超過4k,同時因為每次http請求都會攜帶cookie,所以cookie只適合儲存很小的資料,如會話標識。sessionStorage和localStorage 雖然也有儲存大小的限制,但比cookie大得多,可以達到5M或更大。資料有效期不同。
sessionStorage:僅在當前瀏覽器視窗關閉前有效,自然也就不可能持久保持。
localStorage:始終有效,視窗或瀏覽器關閉也一直儲存,因此用作持久資料;cookie只在設定的cookie過期時間之前一直有效,即使視窗或瀏覽器關閉。作用域不同,sessionStorage不能在不同的瀏覽器視窗中共享,即使是同一個頁面;localStorage 在所有同源視窗中都是共享的;cookie也是在所有同源視窗中都是共享的。
相同點:都是儲存資料,儲存在web端,並且都是同源。
不同點:
(1)cookie 只有4K 小 並且每一次請求都會帶上cookie 體驗不好,浪費頻寬。
(2)session和local直接儲存在本地,請求不會攜帶,並且容量比cookie要大的多。
(3)session 是臨時會話,當視窗被關閉的時候就清除掉 ,而 local永久存在,cookie有過期時間。
(4)cookie 和local都可以支援多視窗共享,而session不支援多視窗共享 但是都支援a連結跳轉的新視窗。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31543790/viewspace-2565023/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- web本地儲存(localStorage、sessionStorage)WebSession
- JavaScript 本地儲存JavaScript
- 本地儲存localStorage使用
- iOS如何本地儲存PHAssetiOS
- 聊聊前端的本地儲存前端
- (十二)本地儲存及同步
- 容器化RDS—— 計算儲存分離 or 本地儲存
- Web儲存機制Web
- flutter本地資料儲存 sqfliteFlutter
- js—localstorage (本地儲存)必知JS
- HTML5 之本地儲存HTML
- Web APIs-07:本地儲存 + 移動端開發框架 + classList屬性WebAPI框架
- Web儲存(Web Storage)擴充套件EStorageWeb套件
- Java常見的本地儲存方式Java
- Props 混入 外掛 插槽 本地儲存
- JavaScript本地儲存的方式有哪些JavaScript
- 給自己組一個本地儲存
- Javascrip—前端本地儲存講解(16)Java前端
- 【Web總結】資源儲存Web
- 前端錄屏並儲存影片到本地前端
- git儲存賬號密碼到本地Git密碼
- Android儲存多張圖片到本地Android
- 小程式-生成海報儲存本地相簿
- 小程式 - 陣列追加兼本地儲存陣列
- 本地儲存VS雲端儲存:區別不只是資料存放位置
- 使用 JDAudioCrawler 將下載的音訊儲存到本地儲存音訊
- 漸進式web應用開發---使用indexedDB實現ajax本地資料儲存(四)WebIndex
- Docker配置本地映象與容器的儲存位置Docker
- 突破本地離線儲存的JS庫 localforageJS
- HTTP快取和瀏覽器的本地儲存HTTP快取瀏覽器
- 谷歌瀏覽器檢視本地儲存資訊谷歌瀏覽器
- H5本地儲存:sessionStorage和localStorageH5Session
- 一文告知雲端儲存與本地儲存哪一個更適合你
- Web端IM聊天訊息該不該用瀏覽器本地儲存?一文即懂!Web瀏覽器
- 使用MITMProxy轉發請求到本地、儲存鑑權給本地請求MIT
- Go Web:資料儲存(2)——CSV檔案GoWeb
- 塊儲存 檔案儲存 物件儲存物件
- 在Centos8 中使用Stratis管理本地儲存(二)CentOS