最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript中window.sessionStorage的具體使用

 更新時(shí)間:2025年07月07日 10:34:27   作者:咖啡の貓  
window.sessionStorage是瀏覽器端臨時(shí)存儲(chǔ)數(shù)據(jù)的機(jī)制,僅在當(dāng)前會(huì)話有效,支持鍵值對(duì)操作,下面就來(lái)介紹一下window.sessionStorage的具體使用,感興趣的可以了解一下

一、前言

在前端開(kāi)發(fā)中,我們經(jīng)常需要在瀏覽器端存儲(chǔ)一些臨時(shí)數(shù)據(jù),例如用戶的登錄狀態(tài)、表單輸入緩存、頁(yè)面跳轉(zhuǎn)參數(shù)等。除了使用 Cookie 和 localStorage,JavaScript 還提供了一個(gè)輕量級(jí)的數(shù)據(jù)存儲(chǔ)方式 —— sessionStorage。

本文將帶你全面了解 window.sessionStorage 的使用方法,包括它的生命周期、API 操作、適用場(chǎng)景及常見(jiàn)問(wèn)題,幫助你掌握這一重要的前端存儲(chǔ)工具。

二、什么是 sessionStorage?

? 定義:

sessionStorage 是 Web Storage API 提供的一種客戶端存儲(chǔ)機(jī)制,它允許你在瀏覽器中以鍵值對(duì)的形式臨時(shí)保存數(shù)據(jù)。

?? 關(guān)鍵特性:

  • 存儲(chǔ)的數(shù)據(jù)僅在當(dāng)前會(huì)話期間有效(關(guān)閉頁(yè)面或標(biāo)簽頁(yè)后數(shù)據(jù)會(huì)被清除)
  • 同一個(gè)網(wǎng)站的不同標(biāo)簽頁(yè)之間互不影響
  • 數(shù)據(jù)不會(huì)自動(dòng)發(fā)送到服務(wù)器

? 支持瀏覽器:

現(xiàn)代主流瀏覽器均支持 sessionStorage,包括 Chrome、Firefox、Safari、Edge 等。

三、sessionStorage 的基本用法

? 1. 存儲(chǔ)數(shù)據(jù):setItem(key, value)

sessionStorage.setItem('username', 'Qwen');

? 2. 讀取數(shù)據(jù):getItem(key)

const name = sessionStorage.getItem('username');
console.log(name); // 輸出: Qwen

? 3. 刪除數(shù)據(jù):removeItem(key)

sessionStorage.removeItem('username');

? 4. 清空所有數(shù)據(jù):clear()

sessionStorage.clear();

? 5. 獲取所有鍵名:key(index)

for (let i = 0; i < sessionStorage.length; i++) {
    const key = sessionStorage.key(i);
    const value = sessionStorage.getItem(key);
    console.log(`${key}: ${value}`);
}

四、sessionStorage 與 localStorage 的區(qū)別

特性sessionStoragelocalStorage
生命周期當(dāng)前頁(yè)面會(huì)話期間(關(guān)閉頁(yè)面即失效)永久存儲(chǔ)(除非手動(dòng)清除)
多標(biāo)簽共享否(每個(gè)標(biāo)簽頁(yè)獨(dú)立)是(同一域名下共享)
數(shù)據(jù)大小限制一般為 5MB 左右一般為 5MB 左右
是否隨請(qǐng)求發(fā)送到服務(wù)器否(不參與 HTTP 請(qǐng)求)
適用場(chǎng)景表單緩存、頁(yè)面間傳參、臨時(shí)登錄信息長(zhǎng)期用戶偏好設(shè)置、持久化數(shù)據(jù)

五、sessionStorage 的典型應(yīng)用場(chǎng)景

? 1. 頁(yè)面間臨時(shí)傳參

適用于從 A 頁(yè)面跳轉(zhuǎn)到 B 頁(yè)面時(shí)傳遞參數(shù),如訂單編號(hào)、用戶 ID 等。

// 頁(yè)面A:存儲(chǔ)數(shù)據(jù)
sessionStorage.setItem('orderId', '1001');
 
// 頁(yè)面B:讀取數(shù)據(jù)
const orderId = sessionStorage.getItem('orderId');
console.log(orderId); // 輸出: 1001

?? 注意:跨域頁(yè)面無(wú)法訪問(wèn)相同 sessionStorage。

? 2. 表單數(shù)據(jù)緩存

當(dāng)用戶填寫了部分表單但刷新頁(yè)面時(shí),可以通過(guò) sessionStorage 緩存已填寫內(nèi)容。

<input type="text" id="nameInput" placeholder="請(qǐng)輸入姓名">
<button onclick="saveForm()">保存草稿</button>
<button onclick="loadForm()">恢復(fù)草稿</button>
 
<script>
function saveForm() {
    const name = document.getElementById('nameInput').value;
    sessionStorage.setItem('formName', name);
}
 
function loadForm() {
    const savedName = sessionStorage.getItem('formName');
    if (savedName) {
        document.getElementById('nameInput').value = savedName;
    }
}
</script>

? 3. 控制頁(yè)面行為(如只提示一次)

某些彈窗或提示信息只需要在本次會(huì)話中顯示一次。

if (!sessionStorage.getItem('hasShown')) {
    alert("歡迎來(lái)到本頁(yè)面!");
    sessionStorage.setItem('hasShown', 'true');
}

六、注意事項(xiàng)與常見(jiàn)錯(cuò)誤

場(chǎng)景建議
存儲(chǔ)非字符串類型? sessionStorage 只能存儲(chǔ)字符串,復(fù)雜類型需先使用 JSON.stringify() 轉(zhuǎn)換
數(shù)據(jù)安全? 不應(yīng)存儲(chǔ)敏感信息(如密碼),因?yàn)樗敲魑拇鎯?chǔ)
同源策略限制? 只能在同源頁(yè)面訪問(wèn),不同子域名/協(xié)議/端口視為不同源
移動(dòng)端兼容性? 所有現(xiàn)代移動(dòng)端瀏覽器都支持
事件監(jiān)聽(tīng)? 可通過(guò) storage 事件監(jiān)聽(tīng)變化(但僅在其他標(biāo)簽頁(yè)觸發(fā)時(shí)生效)

七、進(jìn)階技巧:結(jié)合 JSON 使用復(fù)雜對(duì)象

const user = { name: "Qwen", age: 25 };
sessionStorage.setItem('user', JSON.stringify(user));
 
const storedUser = JSON.parse(sessionStorage.getItem('user'));
console.log(storedUser.name); // 輸出: Qwen

八、總結(jié)對(duì)比表

方法說(shuō)明是否推薦
setItem()設(shè)置鍵值對(duì)? 推薦
getItem()獲取指定鍵的值? 推薦
removeItem()刪除指定鍵? 推薦
clear()清除所有數(shù)據(jù)? 推薦
key()獲取指定索引的鍵名?
length獲取存儲(chǔ)項(xiàng)數(shù)量?

九、結(jié)語(yǔ)

到此這篇關(guān)于JavaScript中window.sessionStorage的具體使用的文章就介紹到這了,更多相關(guān)JavaScript window.sessionStorage內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • js借助ActiveXObject實(shí)現(xiàn)創(chuàng)建文件

    js借助ActiveXObject實(shí)現(xiàn)創(chuàng)建文件

    創(chuàng)建文件的方法有很多,在本文為大家詳細(xì)介紹下js中時(shí)如何實(shí)現(xiàn)的,感興趣的朋友不要錯(cuò)過(guò)了
    2013-09-09
  • JS實(shí)現(xiàn)支持多選的遍歷下拉列表代碼

    JS實(shí)現(xiàn)支持多選的遍歷下拉列表代碼

    這篇文章主要介紹了JS實(shí)現(xiàn)支持多選的遍歷下拉列表代碼,涉及javascript遍歷select及設(shè)置css屬性的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-08-08
  • js屏蔽退格鍵(backspace或者叫后退鍵與F5)

    js屏蔽退格鍵(backspace或者叫后退鍵與F5)

    今天有工作人員反饋后臺(tái)編輯文章的時(shí)候,多按了幾下退格鍵,然后當(dāng)前編輯的頁(yè)面都返回到上一頁(yè)了,導(dǎo)致剛剛添加的內(nèi)容全部丟失,今天正好有空給整理一下
    2019-02-02
  • JavaScript 輪播圖和自定義滾動(dòng)條配合鼠標(biāo)滾輪分享代碼貼

    JavaScript 輪播圖和自定義滾動(dòng)條配合鼠標(biāo)滾輪分享代碼貼

    本文給大家分享一段js輪播圖和自定義滾動(dòng)條的代碼片段,布局和樣式小編沒(méi)給大家多介紹,大家可以根據(jù)個(gè)人需求優(yōu)化,具體實(shí)現(xiàn)代碼,大家可以參考下面代碼片段
    2016-10-10
  • Javascript中實(shí)現(xiàn)String.startsWith和endsWith方法

    Javascript中實(shí)現(xiàn)String.startsWith和endsWith方法

    這篇文章主要介紹了Javascript中實(shí)現(xiàn)String.startsWith和endsWith方法,這兩個(gè)很好用的方法在JS中沒(méi)有,本文就自己編碼實(shí)現(xiàn)了這兩個(gè)方法,需要的朋友可以參考下
    2015-06-06
  • 詳解JavaScript設(shè)計(jì)模式中的享元模式

    詳解JavaScript設(shè)計(jì)模式中的享元模式

    享元模式是一種用于性能優(yōu)化的模式。享元模式的核心是運(yùn)用共享技術(shù)來(lái)有效支持大量細(xì)粒度的對(duì)象.如果系統(tǒng)中創(chuàng)建了大量類似的對(duì)象而導(dǎo)致內(nèi)存占用過(guò)高,本文通過(guò)介紹書中文件上傳的優(yōu)化案例來(lái)說(shuō)明享元模式的使用方式和作用,需要的朋友可以參考下
    2023-06-06
  • JavaScript檢測(cè)上傳文件大小的方法

    JavaScript檢測(cè)上傳文件大小的方法

    這篇文章主要介紹了JavaScript檢測(cè)上傳文件大小的方法,涉及javascript針對(duì)上傳文件的相關(guān)判定技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • 深入淺析JavaScript中的constructor

    深入淺析JavaScript中的constructor

    constructor 屬性返回對(duì)創(chuàng)建此對(duì)象的數(shù)組函數(shù)的引用。本文給大家介紹JavaScript中的constructor ,需要的朋友參考下吧
    2016-04-04
  • js中如何復(fù)制一個(gè)數(shù)組(淺復(fù)制、深復(fù)制)

    js中如何復(fù)制一個(gè)數(shù)組(淺復(fù)制、深復(fù)制)

    這篇文章主要介紹了js中如何復(fù)制一個(gè)數(shù)組(淺復(fù)制、深復(fù)制)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • JavaScript類型檢測(cè)之typeof 和 instanceof 的缺陷與優(yōu)化

    JavaScript類型檢測(cè)之typeof 和 instanceof 的缺陷與優(yōu)化

    在javascript中,typeof 和 instanceof 是用來(lái)判斷數(shù)據(jù)類型比較通用的兩個(gè)方法,這篇文章的目的是通過(guò)對(duì)這兩個(gè)方法介紹來(lái)分析其存在的不足并提出優(yōu)化方案
    2016-01-01

最新評(píng)論

砀山县| 比如县| 兴仁县| 平武县| 师宗县| 深泽县| 治多县| 襄汾县| 北京市| 金堂县| 平乡县| 连云港市| 德昌县| 西安市| 潍坊市| 亚东县| 怀化市| 垣曲县| 花莲市| 鄢陵县| 九寨沟县| 八宿县| 富裕县| 宁都县| 安徽省| 泸西县| 板桥市| 孟连| 乌拉特前旗| 乌拉特前旗| 呈贡县| 南汇区| 朝阳县| 西乡县| 广南县| 揭西县| 莎车县| 深圳市| 通许县| 白玉县| 油尖旺区|