JavaScript本地存儲(chǔ)與會(huì)話存儲(chǔ)的實(shí)現(xiàn)介紹
一、簡(jiǎn)單介紹
本地存儲(chǔ)和會(huì)話存儲(chǔ)的目的,是將所輸入的文件存入到瀏覽器中,在需要的時(shí)候,直接調(diào)用,但是本地存儲(chǔ)和會(huì)話存儲(chǔ)有著一定的區(qū)別,本地存儲(chǔ),在不主動(dòng)刪除的情況下,會(huì)一直保留在瀏覽器中,會(huì)話存儲(chǔ)是,當(dāng)前保存的內(nèi)容,頁面刷新還會(huì)保留在瀏覽器中,但是關(guān)閉頁面在打開時(shí),會(huì)發(fā)現(xiàn)沒有數(shù)據(jù)了。這是他們兩的用處和區(qū)別。
二、localStorage本地存儲(chǔ)
如下代碼
我們先給button一個(gè)監(jiān)聽事件,讓我們有存入的動(dòng)作
這里是想在提交后也能在頁面上顯示,所有定義了一個(gè)li來吧input的value值賦值到ul里面
這里使用了insertBefore在添加時(shí),會(huì)在最上方
這里arr是自己定義的數(shù)組
存儲(chǔ)和獲取都是通過函數(shù)封裝
savaData(arr)就是將input的值存儲(chǔ)到了瀏覽器
window.localStorage.setItem('input', JSON.stringify(title)) 保存的代碼title是形參,input自己取得
獲取let data = window.localStorage.getItem('input') 上面取的input
這里有個(gè)if判斷是判斷這里data是否有內(nèi)容,有就return JSON.parse(data) 沒有就return[]主要是得到所有內(nèi)容的數(shù)組
代碼段也有注釋解釋
<style>
li {
list-style: none;
}
</style>
</head>
<body>
<input type="text" placeholder="輸入內(nèi)容"><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() //調(diào)用內(nèi)容,是為了獲得已經(jīng)存入的內(nèi)容,不然會(huì)出現(xiàn)內(nèi)容覆蓋
let li = document.createElement('li')
li.innerHTML = input.value; //表單值給到li
ul.insertBefore(li, ul.children[0]);//在把值給到ul添加值會(huì)在第一個(gè)
arr.push(input.value)
saveData(arr)
input.value = '' //為好看,輸入過后表單的內(nèi)容自動(dòng)清空
})
function saveData(title) {
window.localStorage.setItem('input', JSON.stringify(title))
}
function getData(get) {
let data = window.localStorage.getItem('input')
console.log(data);//打印所取到的值,但是第一次為空,因?yàn)闉g覽器里面沒有值
if (data != null) {
return JSON.parse(data)
} else {
return []
}
}
</script>
</body>三、sessionStorage會(huì)話存儲(chǔ)
與本地存儲(chǔ)的使用沒有區(qū)別,只要在跟換單詞即可
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="輸入內(nèi)容"><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>總結(jié)
本地存儲(chǔ)和會(huì)話存儲(chǔ)之間唯一的主要區(qū)別是,一旦我們關(guān)閉瀏覽器,我們就會(huì)丟失會(huì)話存儲(chǔ)中保存的任何內(nèi)容。但是,本地存儲(chǔ)并非如此。
最后,讓我們看看 MDN 怎么說:
- 窗口界面的 localStorage 只讀屬性允許您訪問 Document 來源的 Storage 對(duì)象;存儲(chǔ)的數(shù)據(jù)跨瀏覽器會(huì)話保存。
- 只讀 sessionStorage 屬性訪問當(dāng)前源的會(huì)話存儲(chǔ)對(duì)象。sessionStorage 類似于 localStorage;不同之處在于,雖然 localStorage 中的數(shù)據(jù)不會(huì)過期,但 sessionStorage 中的數(shù)據(jù)會(huì)在頁面會(huì)話結(jié)束時(shí)被清除。
到此這篇關(guān)于JavaScript本地存儲(chǔ)與會(huì)話存儲(chǔ)的實(shí)現(xiàn)介紹的文章就介紹到這了,更多相關(guān)JS本地存儲(chǔ)與會(huì)話存儲(chǔ)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
bootstrap監(jiān)聽滾動(dòng)實(shí)現(xiàn)頭部跟隨滾動(dòng)
這篇文章主要為大家詳細(xì)介紹了bootstrap監(jiān)聽滾動(dòng)實(shí)現(xiàn)頭部跟隨滾動(dòng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11
基于JavaScript實(shí)現(xiàn)生成名片、鏈接等二維碼
本文使用javascript技術(shù)實(shí)現(xiàn)生成名片、鏈接等二維碼的代碼,代碼簡(jiǎn)單易懂并附有注釋,需要的朋友可以參考下本文2015-09-09
webpack中Loader和Plugin的區(qū)別小結(jié)
本文主要介紹了webpack中Loader和Plugin的區(qū)別小結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-06-06
用javascript實(shí)現(xiàn)的支持lrc歌詞的播放器
用javascript實(shí)現(xiàn)的支持lrc歌詞的播放器...2007-05-05
JS插件plupload.js實(shí)現(xiàn)多圖上傳并顯示進(jìn)度條
這篇文章主要為大家詳細(xì)介紹了PHP結(jié)合plupload.js JS插件實(shí)現(xiàn)多圖上傳并顯示進(jìn)度條加刪除實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11
elementUI?Table?表格編輯數(shù)據(jù)后停留當(dāng)前位置的示例代碼
這篇文章主要介紹了elementUI?Table?表格編輯數(shù)據(jù)后停留當(dāng)前位置,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04
JavaScript 報(bào)表展示實(shí)現(xiàn)代碼
以下是從網(wǎng)上找到的一段JavaScript實(shí)現(xiàn)圖形報(bào)表的代碼,對(duì)于想客戶端顯示報(bào)表的朋友可以參考下。2009-12-12

