網站首頁 編程語言 正文
我不會告訴你任何定義和概念,上車,讀完這篇博客,你就會對本地存儲(Local Storage) 和 會話存儲(Session Storage)有一個清晰的認識。
目錄
前提知識
請按照我以下的步驟來:
1、在任意網頁中按F12打開開發者工具
2、單擊Application,即應用
3、單擊存儲,您將在那里看到本地存儲和會話存儲。
本地存儲和會話存儲都存儲鍵值對。
本地存儲和會話存儲的主要區別在于,在 關閉瀏覽器
后,存儲在 會話存儲
中的鍵值對會丟失。
范例
現在,讓我們通過一些示例來了解如何對本地存儲進行操作。
示例1:將鍵值對提供給本地存儲
localStorage.setItem('Name1', 'uiu');
控制臺執行,查看效果
讓我們看看本地存儲的“ typeof ”:
示例2: 本地存儲中設置鍵值對
在上面的示例中,我們看到了 如何在本地存儲中設置鍵值對。
現在,讓我們了解如何從本地存儲中獲取鍵值對。
let Name1 = localStorage.getItem('Name1')
console.log(Name1)
示例3: 獲取空值
現在,讓我們嘗試獲取一些不存在的值。
let Name2 = localStorage.getItem('Name2');
console.log(Name2)
如果您嘗試從不存在的本地存儲中獲取某些內容,則結果為 null
。
很多時候我們希望將數組存儲在本地存儲中,因為數組很容易使用(我們有很多內置的數組方法)。
但是,本地存儲的一個限制是它將數組存儲為字符串。讓我們看看我的意思:
// 本地存儲
localStorage.setItem('WebSite', 'uiuing.com');
// 定義ProgrammingLanguage數組
let ProgrammingLanguage = ['Java', 'Python', 'JavaScript', 'GO+']
// 本地存儲存儲 ProgrammingLanguage數組
localStorage.setItem('favoriteProgrammingLanguage', ProgrammingLanguage);
為了克服這個問題??,我們使用 JSON.stringify
。請看下面的實際操作
示例 4:將數組存儲在本地存儲中
現在我們使用 JSON.stringify
將數組存儲在本地存儲中
localStorage.setItem('WebSite', 'uiuing.com');
let ProgrammingLanguage = ['Java', 'Python', 'JavaScript', 'GO+']
// 這里講原先的ProgrammingLanguage 修改為了 JSON.stringify(ProgrammingLanguage)
localStorage.setItem('favoriteProgrammingLanguage',JSON.stringify(ProgrammingLanguage));
示例 5:從本地存儲中獲取數組
從本地存儲中獲取數組。
上面的結果可能看起來像一個數組,但我們從本地存儲而不是數組獲取字符串。
讓我證明一下。
因此,為了從本地存儲中獲取數組,我們使用 JSON.parse
,見下文。
示例 6:從本地存儲中獲取數組?
現在我們 JSON.parse
使用從本地存儲中獲取數組
console.log(JSON.parse(localStorage.getItem('favoriteProgrammingLanguage')));
因此,我們使用:
- JSON.stringify:將數組設置為本地存儲中的值。
- JSON.parse:從本地存儲中獲取數組。
示例 7:清除本地存儲
清理前
localStorage.clear()
運行后
因此,我們可以使用 localStorage.clear()
來清除本地存儲
僅從本地存儲中刪除“name1”鍵值對。
示例 8:僅從本地存儲中刪除 Name1 鍵值對
localStorage.setItem('Name1', 'uiu');
localStorage.setItem('WebSite', 'uiuing.com');
let ProgrammingLanguage = ['Java', 'Python', 'JavaScript', 'GO+']
localStorage.setItem('favoriteProgrammingLanguage',JSON.stringify(ProgrammingLanguage));
運行這條命令試試
localStorage.removeItem('Name1');
正如您在上面看到的,為了刪除我們使用的特定鍵值對 localStorage.removeItem
。
會話存儲
這就是關于本地存儲的全部內容。
我們在 會話存儲 中運行類似的操作,唯一的區別是我們 使用 sessionStorage
代替 localStorage
:
// 示例1
sessionStorage.setItem('Name1', 'uiu');
// 示例2
sessionStorage.getItem('Name1');
// 示例4
let ProgrammingLanguage = ['Java', 'Python', 'JavaScript', 'GO+']
sessionStorage.setItem('favoriteProgrammingLanguage',JSON.stringify(ProgrammingLanguage));
// 示例6
console.log(JSON.parse(sessionStorage.getItem('favoriteProgrammingLanguage')));
// 示例7
sessionStorage.clear()
// 示例8
sessionStorage.removeItem('Name1');
讓我們運行一下
sessionStorage.setItem('Name1', 'uiu');
接下來我們關閉該網頁,然后重新打開
此時會話存儲的數據已經消失了,而之前示例運行的數據在本地存儲中還存在
總結
讓我重申一下:本地存儲和會話存儲之間唯一的主要區別是,一旦我們關閉瀏覽器,我們就會丟失會話存儲中保存的任何內容。但是,本地存儲并非如此。
最后,讓我們看看 MDN 怎么說:
窗口界面的 localStorage 只讀屬性允許您訪問 Document 來源的 Storage 對象;存儲的數據跨瀏覽器會話保存。
只讀 sessionStorage 屬性訪問當前源的會話存儲對象。sessionStorage 類似于 localStorage;不同之處在于,雖然 localStorage 中的數據不會過期,但 sessionStorage 中的數據會在頁面會話結束時被清除。
原文鏈接:https://blog.csdn.net/qq_41103843/article/details/123229396
相關推薦
- 2022-01-19 正則表達式匹配日期格式yyyy-mm-dd(支持閏年)
- 2024-01-14 springboot-mybatis/JPA流式查詢
- 2022-06-12 Android開發之保存圖片到相冊的三種方法詳解_Android
- 2022-11-05 Nginx配置文件nginx.conf的基本配置實例詳解_nginx
- 2023-07-25 BigDecimal詳解
- 2022-05-27 C++?動態規劃算法使用分析_C 語言
- 2022-06-27 python中的標準庫html_python
- 2022-06-29 python密碼學庫pynacl功能介紹_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支