前端開發中,Web Storage的存儲數據的方法localstorage和sessionStorage的使用及區別

在 Web瀏覽器中存儲數據以改善用戶體驗和提升Web應用程序性能是非常常見的。在大多數情況下,可供我們使用就是LocalStorage和SessionStorage。

本文中,我們將會從安全性和用戶體驗兩個方面對SessionStorage和LocalStorage進行評估。然后我們將討論如何根據您的要求挑選合適使用的對象。

一、API的使用方式
1、localStorage:
// 存儲數據
localStorage.setItem('key', 'value');// 讀取數據
localStorage.getItem('key');// 刪除數據
localStorage.removeItem('key');// 刪除全部
localStorage.clear();
2、sessionStorage:
// 存儲數據
sessionStorage.setItem('key', 'value');// 讀取數據
sessionStorage.getItem('key');// 刪除數據
sessionStorage.removeItem('key');// 刪除全部
sessionStorage.clear();
二、localstorage和sessionStorage的區別:
1、相同點
  • 它們的儲存大小都是5M;

  • 它們都用于存儲客戶端數據;

  • 它們都只能存儲字符串數據;

2、不同點
生命周期不同:
  • SessionStorage的生命周期為當前窗口或標簽頁,一旦窗口或標簽頁被永久關閉,那么所有通過SessionStorage存儲的數據也就被清空了。

  • LocalStorage的生命周期是永久,除非用戶顯示在瀏覽器提供的UI上清除LocalStorage信息,否則這些信息將永遠存在。

作用域不同:
  • SessionStorage數據獨立于其他選項卡和窗口。如果同時打開了兩個選項卡,其中一個更新了SessionStorage,則在其他選項卡和窗口中不會反映出來。

  • LocalStorage可跨瀏覽器窗口和選項卡間共享。如果在多個選項卡和窗口中打開了一個應用程序,而一旦在其中一個選項卡或窗口中更新了LocalStorage,則在所有其他選項卡和窗口中都會看到更新后的LocalStorage數據。

三、相比Cookie有如下優點
  • 擁有更大的存儲容量,Cookie是4k,Web Storage為5M。

  • 操作數據相比Cookie更簡單。

  • 不會隨著每次請求發送到服務端。

四、安全性

Web Storage的存儲對象是獨立于域名的,也就是說不同站點下的Web應用有著自己獨立的存儲對象,互相間是無法訪問的,在這一點上SessionStorage和LocalStorage是相同的。

  • 部署在http://example.com上的Web應用無法訪問http://example.cn的Web Storage存儲對象。

  • 對于子域名也是一樣,盡管http://www.example.com.cn和http://www1.example.com.cn 同屬http://example.com.cn 主域下,但它們相互不能訪問對方的存儲對象。

  • 對于針對使用http和https協議間也是不同的。也就是說http://example.com 與https://example.com 也是相互隔離。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/209546.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/209546.shtml
英文地址,請注明出處:http://en.pswp.cn/news/209546.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux驅動安裝遇到的問題(Kernel configuration is invalid)(Invalid module format)

Linux驅動編譯安裝遇到的問題(Kernel configuration is invalid)(Invalid module format) 前言1. Kernel configuration is invalid2. Invalid module format2.1 第一種情況:內核模塊編譯的環境與現在insmod想要運行的…

python:mplfinance 畫K線圖+布林線

pip install mplfinance ; python 安裝使用 TA-lib 安裝主要在 http://www.lfd.uci.edu/~gohlke/pythonlibs/ 這個網站找到 TA_Lib-0.4.24-cp310-cp310-win_amd64.whl pip install /pypi/TA_Lib-0.4.24-cp310-cp310-win_amd64.whl 編寫 mpf_kline_boll.py 如下 # -*- cod…

英語口語練習(背誦老友記)

There is nothing to tell! 這沒什么好說的! Hes just some guy I work with. 他不過是我的同事。 Cmon, youre going out with the guy! 少來了,你們都在約會了! Theres gotta be something wrong with him! 這個男人一定有什么問題&…

華為OD機試真題-快遞員的煩惱-2023年OD統一考試(C卷)

題目描述: 快遞公司每日早晨,給每位快遞員推送需要送到客戶手中的快遞以及路線信息,快遞員自己又查找了一些客戶與客戶之間的路線距離信息,請你依據這些信息,給快遞員設計一條最短路徑,告訴他最短路徑的距離。 注意: 1. 不限制快遞包裹送到客戶手中的順序,但必須保證都…

【VRTK】【VR開發】【Unity】12-占位身體

課程配套學習資源下載 https://download.csdn.net/download/weixin_41697242/88485426?spm=1001.2014.3001.5503 【概要】 目前你會發現,就算存在非Trigger Collider的墻壁屏障等,也能夠正常穿過,這會導致不沉浸的體驗。你需要一個占位身體來實現讓墻壁等碰撞并擋住自己…

基于java的貪吃蛇小游戲

貪吃蛇游戲需要做兩點:圖形界面和游戲邏輯。在 Java 中,可以使用 Swing 或 JavaFX 來創建圖形界面。下面代碼創建了一個簡單的 Swing 窗口,實現了一個基本的貪吃蛇游戲。在游戲中,使用方向鍵控制貪吃蛇的移動,吃到食物…

`Numpy`數組中 數據的修改(第10講)

Numpy數組中 數據的修改(第10講) ??????? ??博主 侯小啾 感謝您的支持與信賴。?? ????????????????????????????????????????????????????????????????????????????????????…

YOLOv5獨家原創改進:SPPF自研創新 | 可變形大核注意力(D-LKA Attention),大卷積核提升不同特征感受野的注意力機制

??????本文自研創新改進: 可變形大核注意力(D-LKA Attention)高效結合SPPF進行二次創新,大卷積核提升不同特征感受野的注意力機制。 收錄 YOLOv5原創自研 https://blog.csdn.net/m0_63774211/category_12511931.html ??????全網獨家首發創新(原創),適合p…

Python學習路線 - Python語言基礎入門 - 函數使用

Python學習路線 - Python語言基礎入門 - 函數使用 函數介紹函數函數的快速體驗 函數的定義函數的定義 函數的參數函數的傳入參數函數的傳入參數 - 傳參定義函數的傳入參數 - 語法解析練習案例:升級版自動查詢核酸 函數的返回值函數返回值的定義返回值的語法None類型…

Python----異常

1、什么是異常 當檢測到一個錯誤時,解釋器就無法繼續執行了,反而出現了一些錯誤的提示,這就是所謂的"異常"。 2、異常演示 # 運算符 # print(10/0) # 文件異常 f open(python.txt, r) content f.readlines() print(content) 3…

vue中el-upload結合vuedraggable實現圖片的上傳、排序、刪除以及預覽等功能

實現效果&#xff1a; 功能實現&#xff1a; 要實現圖片的拖拽功能首先需要安裝vuedraggable庫 npm install vuedraggable --save在組件中引入并注冊 vuedraggable <script>import draggable from "vuedraggable";export default {// 注冊組件components: {…

SI24R03 高度集成低功耗SOC 2.4G 收發一體芯片

今天給大家介紹一款Soc 2.4G 收發一體模塊-SI24R03 Si24R03是一款高度集成的低功耗無線SOC芯片&#xff0c;芯片為QFN32 5x5mm封裝&#xff0c;集成了資源豐富的MCU內核與2.4G收發器模塊&#xff0c;最低功耗可達1.6uA&#xff0c;極少外圍器件&#xff0c;大幅降低系統應用成本…

詳解Android單元測試最佳實踐

目的 充分的單元測試就是提高代碼質量最有效的手段之一&#xff0c;而單元測試嚴重依賴代碼的可測試性&#xff0c;本文主要通過一個簡單的DEMO演示如何對Android原生應用進行單元測試&#xff0c;同時示例代碼采用MVP模式以提高代碼的可讀性和可測試性 簡介 在Android原生應…

mmdetection測試保存到新的文件夾,無需標簽

這個是用demo這個代碼測試的&#xff0c;需要先訓練一個pth文件夾&#xff0c;訓練之后再調用pth文件夾進行測試。測試的代碼文件名是&#xff1a;image_demo_new.py&#xff0c;代碼如系所示&#xff1a; # Copyright (c) OpenMMLab. All rights reserved. import asyncio fr…

使用selenium的edge瀏覽器登錄某為

互聯網上基本都是某哥的用法&#xff0c;其實edge和某哥的用法是一樣的就有一下參數不一樣。 一、運行環境 Python&#xff1a;3.7 Selenium&#xff1a;4.11.2 Edge&#xff1a;版本 120.0.2210.61 (正式版本) (64 位) 二、執行代碼 from time import sleepfrom selenium…

調新浪分享

前端寫一個按鈕,通過按鈕來調出新浪界面, window.location.href http://service.weibo.com/share/share.php?url 這行代碼調出新浪分享界面,要是想要添加一些圖片和文字 使用: window.location.href http://service.weibo.com/share/share.php?url encodeURIComponent…

P2 Qt Creator創建第一個Qt程序

前言 &#x1f3ac; 個人主頁&#xff1a;ChenPi &#x1f43b;推薦專欄1: 《C_ChenPi的博客-CSDN博客》??? &#x1f525; 推薦專欄2: 《LLinux C應用編程&#xff08;概念類&#xff09;_ChenPi的博客-CSDN博客》??? &#x1f33a;本篇簡介 &#xff1a;這一章我們學…

Python基礎——兩個常用且容易忘記的知識點

1. replace函數的第三個參數 replace 方法提供了一個可選的參數 count&#xff0c;可以用于指定替換的次數。你可以將 count 設置為 1 來限制替換的次數&#xff0c;只替換第一個匹配項。 下面是使用 replace 方法限制替換次數的示例&#xff1a; date_str "2023/05/1…

二百一十一、Flume——Flume實時采集Linux中的Hive日志寫入到HDFS中(親測、附截圖)

一、目的 為了實現用Flume實時采集Hive的操作日志到HDFS中&#xff0c;于是進行了一場實驗 二、前期準備 &#xff08;一&#xff09;安裝好Hadoop、Hive、Flume等工具 &#xff08;二&#xff09;查看Hive的日志在Linux系統中的文件路徑 [roothurys23 conf]# find / -name…

smarty模版 [BJDCTF2020]The mystery of ip 1

打開題目 點擊flag給了我們一個ip 點擊hint&#xff0c;查看源代碼處告訴了我們要利用這個ip bp抓包&#xff0c;并添加X-Forward-For頭 所以這道題是XFF可控 本來聯想到XFF漏洞引起的sql注入&#xff0c;但是我們無論輸入什么都會正常回顯&#xff0c;就聯想到ssti注入 我們…