[點晴永久免費OA]【HTML/JS】localStorage和sessionStorage使用方法及應用場景說明
:localStorage和sessionStorage使用方法及應用場景說明 這兩個是HTML5新增加的,經(jīng)常用到,在這里記錄一下。 兩個的共同點都是存儲在客戶端也就是瀏覽器,存儲的數(shù)據(jù)大小是5M,比cookie的4K大了很多。 1、生命周期: localStorage的生命周期是永久的,關閉頁面或瀏覽器之后localStorage中的數(shù)據(jù)也不會消失。localStorage除非主動刪除數(shù)據(jù),否則數(shù)據(jù)永遠不會消失。 作用域:相同瀏覽器的不同標簽在同源情況下可以共享localStorage sessionStorage的生命周期是在僅在當前會話下有效。sessionStorage引入了一個“瀏覽器窗口”的概念,sessionStorage是在同源的窗口中始終存在的數(shù)據(jù)。只要這個瀏覽器窗口沒有關閉,即使刷新頁面或者進入同源另一個頁面,數(shù)據(jù)依然存在。但是sessionStorage在關閉了瀏覽器窗口后就會被銷毀。同時獨立的打開同一個窗口同一個頁面,sessionStorage也是不一樣的。 作用域:只在當前標簽可用,當前標簽的iframe中且同源可以共享 2、存儲大?。?/strong> localStorage和sessionStorage的存儲數(shù)據(jù)大小一般都是:5MB 3、存儲位置: localStorage和sessionStorage都保存在客戶端,以鍵值對的形式存儲,不與服務器進行交互通信。 4、存儲內(nèi)容類型: localStorage和sessionStorage只能存儲字符串類型,對于復雜的對象可以使用ECMAscript提供的JSON對象的stringify和parse來處理 5、獲取方式: localStorage:window.localStorage;; sessionStorage:window.sessionStorage;。 6、應用場景: localStoragese:常用于長期登錄(+判斷用戶是否已登錄),適合長期保存在本地的數(shù)據(jù)。 sessionStorage:敏感賬號一次性登錄。 下面說一下具體用法: 兩個的用法可以說一樣,具體就是保存到本地、從本地取出來、刪除存儲的數(shù)據(jù)、清除全部,具體看下面代碼: 1 //localStorage的用法 2 //保存到本地,第一個參數(shù)是變量名,第二個是值 3 localStorage.setItem('name','張三'); 4 //從本地取出,只有一個參數(shù),存儲的變量名 5 localStorage.getItem('name'); 6 //刪除某一個存儲的數(shù)據(jù) 7 localStorage.removeItem('name'); 8 //清除所有的數(shù)據(jù) 9 localStorage.clear(); 10 //sessionStorage的用法,參考localStorage的用法 11 sessionStorage.setItem('name','李四'); 12 sessionStorage.getItem('name'); 13 sessionStorage.removeItem('name'); 14 sessionStorage.clear(); 第一次使用這個的可能會問怎么知道數(shù)據(jù)有沒有存儲到客戶端,很簡單,就像我們查看元素一樣,localStorage和sessionStorage也可以在瀏覽器控制臺查看,首先運行以下代碼: 1 //保存到本地 2 localStorage.setItem('name','張三'); 3 4 sessionStorage.setItem('name','李四'); 然后就可以看到下圖: 可以看到我們想要保存的數(shù)據(jù)已經(jīng)存儲到了本地。 上面只是簡單的存儲,在實際項目中可能會出現(xiàn)需要存儲數(shù)組或者是對象,這樣的情況下就不能像上面那樣簡單的存儲,需要轉(zhuǎn)換一下格式。 因為localStorage和sessionStorage是以字符串格式存儲到本地的。 對于需要存儲數(shù)組或者是對象,我們可以轉(zhuǎn)換一下格式,如下代碼: 1 //保存 2 setSession(key,value){ 3 localStorage.setItem(key,JSON.stringify(value)) 4 }; 5 //取出 6 getSession(key){ 7 return JSON.parse(localStorage.getItem(key)) 8 }; 上面是localStorage用法,sessionStorage同理。 刪除和清除全部還是上面代碼。 特別要注意: setStorage是存儲數(shù)據(jù)的,key是指定的數(shù)據(jù)名稱,可以隨意起,但是一定要是字符串類型,否則瀏覽器自動把值作為key的名字。 如上圖第一個值,就是key不是以字符串指定的,即沒有加雙引號。value值字符串類型的也切記加雙引號。 該文章在 2023/3/20 16:12:49 編輯過 |
關鍵字查詢
相關文章
正在查詢... |