JavaScript本地?cái)?shù)據(jù)存儲(chǔ)sessionStorage與localStorage使用詳解
小案例:

在這個(gè)登錄注冊(cè)頁面案例里,我們并沒有連接數(shù)據(jù)庫而是用到了本地存儲(chǔ)這個(gè)知識(shí)點(diǎn)完成的,我們看看本地存儲(chǔ)究竟是什么:
本地存儲(chǔ)特性
- 數(shù)據(jù)存儲(chǔ)在用戶瀏覽器中
- 設(shè)置、讀取方便、甚至頁面刷新不丟失數(shù)據(jù)
- 容量較大, sessionStorage約5M、localStorage約20M .
- 只能存儲(chǔ)字符串,可以將對(duì)象JSON.stringify()編碼后存儲(chǔ)
window.sessionStorage
特點(diǎn)
- 生命周期為關(guān)閉瀏覽器窗口
- 在同一個(gè)窗口(頁面)下數(shù)據(jù)可以共享
- 以鍵值對(duì)的形式存儲(chǔ)使用
使用
存儲(chǔ)數(shù)據(jù):
sessionStorage.setItem(key,value)
獲取數(shù)據(jù):
sessionStorage.getItem(key)
刪除數(shù)據(jù):
sessionStorage.removeItem(key)
刪除所有數(shù)據(jù):
sessionStorage.clear()
在瀏覽器里點(diǎn)擊這個(gè)按鈕點(diǎn)Application就能看到我們存儲(chǔ)的數(shù)據(jù)

就存儲(chǔ)在Storage下,sessionStorage與localStorage存儲(chǔ)的數(shù)據(jù)是分開的

例子
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<input type="text">
<button class="set">存儲(chǔ)數(shù)據(jù)</button>
<button class="get">獲取數(shù)據(jù)</button>
<button class="remove">刪除數(shù)據(jù)</button>
<button class="del">清空所有數(shù)據(jù)</button>
<script>
console.log(localStorage.getItem('username'));
var ipt = document.querySelector('input');
var set = document.querySelector('.set');
var get = document.querySelector('.get');
var remove = document.querySelector('.remove');
var del = document.querySelector('.del');
set.addEventListener('click', function() {
// 當(dāng)我們點(diǎn)擊了之后,就可以把表單里面的值存儲(chǔ)起來
var val = ipt.value;
sessionStorage.setItem('uname', val);
sessionStorage.setItem('pwd', val);
});
get.addEventListener('click', function() {
// 當(dāng)我們點(diǎn)擊了之后,就可以把表單里面的值獲取過來
console.log(sessionStorage.getItem('uname'));
});
remove.addEventListener('click', function() {
//
sessionStorage.removeItem('uname');
});
del.addEventListener('click', function() {
// 當(dāng)我們點(diǎn)擊了之后,清除所有的
sessionStorage.clear();
});
</script>
</body>
</html>但我們單擊第一個(gè)存儲(chǔ)數(shù)據(jù)的按鈕后,我們輸入的數(shù)據(jù)‘ wwww '會(huì)被存儲(chǔ)在變量 val 里,然后通過鍵值對(duì)的形式存儲(chǔ)到瀏覽器里,我們可以在右邊的Application看到存儲(chǔ)的鍵值對(duì)

window.IocalStorage
特點(diǎn)
- 生命周期永久生效,除非手動(dòng)刪除否則關(guān)閉頁面也會(huì)存在
- 可以多窗口(頁面)共享(同一瀏覽器可以共享)
- 以鍵值對(duì)的形式存儲(chǔ)使用
使用
存儲(chǔ)數(shù)據(jù):
localStoragesetItem(key,value)
獲取數(shù)據(jù):
localStorage.getItem(key)
刪除數(shù)據(jù):
localStorage.removeItem(key)
刪除所有數(shù)據(jù):
localStorage.clear()
IocalStorage的應(yīng)用方式和sessionStorage一樣只不過IocalStorage生命周期永久生效就算把瀏覽器關(guān)掉了,下次打開數(shù)據(jù)還會(huì)在,這就是它最突出的特點(diǎn)
綜合案例

有一個(gè)這樣的登錄注冊(cè)頁面,我們要實(shí)現(xiàn)像文章開頭那樣,可以保存注冊(cè)的數(shù)據(jù),然后判斷登陸頁面輸入的用戶名與密碼和本地存儲(chǔ)的數(shù)據(jù)是否一一對(duì)應(yīng)。這個(gè)案例怎么應(yīng)用剛剛學(xué)到的本地存儲(chǔ)知識(shí)點(diǎn)完成呢?
思路
我們可以聲明一個(gè)數(shù)組,把在注冊(cè)頁面中輸入的用戶名都存儲(chǔ)在數(shù)組里,讓注冊(cè)頁面的用戶名和密碼通過本地存儲(chǔ)存儲(chǔ)在瀏覽器中。然后回到登陸頁面,先判斷輸入的用戶名是否在用戶名數(shù)組里,如果是的話再在本地存儲(chǔ)的數(shù)據(jù)中找到該用戶名對(duì)應(yīng)的密碼,如果這個(gè)密碼和我們?cè)诘顷戫撁孑斎氲拿艽a相同,就登陸成功了
到此這篇關(guān)于JavaScript本地?cái)?shù)據(jù)存儲(chǔ)sessionStorage與localStorage使用詳解的文章就介紹到這了,更多相關(guān)JS sessionStorage與localStorage內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- JavaScript 本地存儲(chǔ)localStorage完全指南及應(yīng)用場景
- javascript中本地存儲(chǔ)localStorage,sessionStorage,cookie,indexDB的用法與使用場景匯總
- Javascript本地存儲(chǔ)localStorage看這一篇就夠了
- javascript中l(wèi)ocalStorage本地存儲(chǔ)(新增、刪除、修改)使用詳細(xì)教程
- JavaScript中本地存儲(chǔ)(LocalStorage)和會(huì)話存儲(chǔ)(SessionStorage)的使用
- JS localStorage存儲(chǔ)對(duì)象,sessionStorage存儲(chǔ)數(shù)組對(duì)象操作示例
- JavaScript使用localStorage存儲(chǔ)數(shù)據(jù)
- JavaScript和jQuery存儲(chǔ)localStorage的具體實(shí)現(xiàn)方法詳解
相關(guān)文章
如何利用微信小程序獲取OneNet平臺(tái)數(shù)據(jù)顯示溫濕度
最近在工作中遇到了一個(gè)需求,需要顯示溫濕度,網(wǎng)上找了一圈沒找到解決方法,所以只能自己寫一個(gè),這篇文章主要給大家介紹了關(guān)于如何利用微信小程序獲取OneNet平臺(tái)數(shù)據(jù)顯示溫濕度的相關(guān)資料,需要的朋友可以參考下2022-03-03
javascript 就地編輯實(shí)現(xiàn)代碼
最近正在看《javascript設(shè)計(jì)模式》,其中有一個(gè)'就地編輯'的示例,用來表現(xiàn)不同的繼承方式,看完之后想自己憑理解寫一個(gè)類似的東西。2010-05-05
Javascript表達(dá)式中連續(xù)的 && 和 || 之賦值區(qū)別
了區(qū)分賦值表達(dá)式中出現(xiàn)的連續(xù)的 ‘&&’和 ‘||’的不同的賦值含義,做了一個(gè)小測試.2010-10-10
JavaScript數(shù)組的隨機(jī)排序方法詳解
在前端開發(fā)中,我們經(jīng)常需要對(duì)數(shù)組進(jìn)行隨機(jī)排序,例如在游戲、抽獎(jiǎng)、數(shù)據(jù)隨機(jī)展示等場景中,JavaScript 提供了多種方式來實(shí)現(xiàn)數(shù)組的隨機(jī)排序,本文將詳細(xì)介紹不同的方法,并分析它們的優(yōu)缺點(diǎn),幫助開發(fā)者在不同場景下選擇合適的解決方案,需要的朋友可以參考下2025-03-03
JS獲取短信驗(yàn)證碼倒計(jì)時(shí)的實(shí)現(xiàn)代碼
這篇文章主要介紹了JS獲取短信驗(yàn)證碼倒計(jì)時(shí)的實(shí)現(xiàn)代碼,需要的朋友可以參考下2017-05-05
用js模擬JQuery的show與hide動(dòng)畫函數(shù)代碼
用javascript實(shí)現(xiàn)的模擬jquery下的顯示與隱藏的動(dòng)畫效果,學(xué)習(xí)的朋友可以參考下。2010-09-09

