JavaScript本地存儲與會話存儲的實現介紹
一、簡單介紹
本地存儲和會話存儲的目的,是將所輸入的文件存入到瀏覽器中,在需要的時候,直接調用,但是本地存儲和會話存儲有著一定的區別,本地存儲,在不主動刪除的情況下,會一直保留在瀏覽器中,會話存儲是,當前保存的內容,頁面刷新還會保留在瀏覽器中,但是關閉頁面在打開時,會發現沒有數據瞭。這是他們兩的用處和區別。
二、localStorage本地存儲
如下代碼
我們先給button一個監聽事件,讓我們有存入的動作
這裡是想在提交後也能在頁面上顯示,所有定義瞭一個li來吧input的value值賦值到ul裡面
這裡使用瞭insertBefore在添加時,會在最上方
這裡arr是自己定義的數組
存儲和獲取都是通過函數封裝
savaData(arr)就是將input的值存儲到瞭瀏覽器
window.localStorage.setItem('input', JSON.stringify(title)) 保存的代碼title是形參,input自己取得
獲取let data = window.localStorage.getItem('input') 上面取的input
這裡有個if判斷是判斷這裡data是否有內容,有就return JSON.parse(data) 沒有就return[]主要是得到所有內容的數組
代碼段也有註釋解釋
<style> li { list-style: none; } </style> </head> <body> <input type="text" placeholder="輸入內容"><button>提交</button> <hr> <ul></ul> <script> let input = document.querySelector('input') let btn = document.querySelector('button') let ul = document.querySelector('ul') btn.addEventListener('click', function () { let arr = getData() //調用內容,是為瞭獲得已經存入的內容,不然會出現內容覆蓋 let li = document.createElement('li') li.innerHTML = input.value; //表單值給到li ul.insertBefore(li, ul.children[0]);//在把值給到ul添加值會在第一個 arr.push(input.value) saveData(arr) input.value = '' //為好看,輸入過後表單的內容自動清空 }) function saveData(title) { window.localStorage.setItem('input', JSON.stringify(title)) } function getData(get) { let data = window.localStorage.getItem('input') console.log(data);//打印所取到的值,但是第一次為空,因為瀏覽器裡面沒有值 if (data != null) { return JSON.parse(data) } else { return [] } } </script> </body>
三、sessionStorage會話存儲
與本地存儲的使用沒有區別,隻要在跟換單詞即可
window.sessionStorage.setItem('input', JSON.stringify(title))
let data = window.sessionStorage.getItem('input')
<style> li { list-style: none; } </style> </head> <body> <input type="text" placeholder="輸入內容"><button>提交</button> <hr> <ul></ul> <script> let input = document.querySelector('input') let btn = document.querySelector('button') let ul = document.querySelector('ul') btn.addEventListener('click', function () { let arr = getData() let li = document.createElement('li') li.innerHTML = input.value; ul.insertBefore(li, ul.children[0]); arr.push(input.value) saveData(arr) input.value = '' }) function saveData(title) { window.sessionStorage.setItem('input', JSON.stringify(title)) } function getData(get) { let data = window.sessionStorage.getItem('input') console.log(data); if (data != null) { return JSON.parse(data) } else { return [] } } </script> </body>
總結
本地存儲和會話存儲之間唯一的主要區別是,一旦我們關閉瀏覽器,我們就會丟失會話存儲中保存的任何內容。但是,本地存儲並非如此。
最後,讓我們看看 MDN 怎麼說:
- 窗口界面的 localStorage 隻讀屬性允許您訪問 Document 來源的 Storage 對象;存儲的數據跨瀏覽器會話保存。
- 隻讀 sessionStorage 屬性訪問當前源的會話存儲對象。sessionStorage 類似於 localStorage;不同之處在於,雖然 localStorage 中的數據不會過期,但 sessionStorage 中的數據會在頁面會話結束時被清除。
到此這篇關於JavaScript本地存儲與會話存儲的實現介紹的文章就介紹到這瞭,更多相關JS本地存儲與會話存儲內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- JavaScript本地存儲實現用戶名存儲案例
- Vue 插件及瀏覽器本地存儲
- JS 中Json字符串+Cookie+localstorage
- JSONP跨域模擬百度搜索
- JavaScript之BOM構成和常用事件詳解