解釋:

為什麼要使用網路儲存?

Web儲存提供了一種簡單有效的方法來增強使用者體驗。透過在客戶端儲存首選項、會話或其他必要數據,您可以創建更個人化、響應靈敏且無縫的 Web 應用程式。了解並利用 LocalStorage 和 SessionStorage 將幫助您建立更智慧的應用程序,滿足用戶需求,而無需嚴重依賴伺服器端儲存。

結論

LocalStorage 和 SessionStorage 是任何 Web 開發人員的必備工具。它們允許您直接在瀏覽器中儲存數據,從而在數據可用方式和時間方面提供靈活性。無論您需要保留使用者首選項還是維護特定於會話的信息,Web 儲存都可以讓您輕鬆完成此任務。透過掌握這些工具,您可以大幅增強 Web 應用程式的功能和使用者體驗。

","image":"http://www.luping.net/uploads/20240818/172395936366c1884370aa6.jpg","datePublished":"2024-08-18T13:36:03+08:00","dateModified":"2024-08-18T13:36:03+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}
」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > LocalStorage 和 SessionStorage 逐步指南:在客戶端儲存資料

LocalStorage 和 SessionStorage 逐步指南:在客戶端儲存資料

發佈於2024-08-18
瀏覽:456

A Step-by-Step Guide to LocalStorage and SessionStorage: Storing Data on the Client Side

網路儲存簡介

網路儲存是現代瀏覽器中的強大功能,可讓您直接在客戶端儲存資料。即使在瀏覽器關閉後(使用 LocalStorage)或僅在會話期間(使用 SessionStorage),也可以保留此資料。這些工具對於儲存使用者偏好、購物車資料和其他類型的增強使用者體驗的資訊非常有用。

LocalStorage 和 SessionStorage 之間的差異

了解 LocalStorage 和 SessionStorage 之間的差異是有效使用它們的關鍵:

  • 本地儲存:

    • 即使瀏覽器關閉後資料仍然存在。
    • 它可用於儲存長期數據,例如使用者偏好或令牌。
    • 儲存的資料沒有過期時間,並且在明確刪除之前一直可用。
  • 會話儲存:

    • 資料僅在會話期間可用(即,只要選項卡或瀏覽器視窗開啟)。
    • 會話結束(選項卡關閉)後,資料將自動清除。
    • 它對於臨時資料非常有用,例如特定於會話的使用者互動或選擇。

儲存、檢索和刪除數據

使用 LocalStorage 和 SessionStorage 非常簡單。以下範例示範如何儲存、檢索和刪除資料。

// Storing data
localStorage.setItem('username', 'john_doe');
sessionStorage.setItem('sessionID', '123456');

// Retrieving data
const username = localStorage.getItem('username');
const sessionID = sessionStorage.getItem('sessionID');

// Removing data
localStorage.removeItem('username');
sessionStorage.removeItem('sessionID');

// Clearing all data
localStorage.clear();
sessionStorage.clear();

真實範例:儲存使用者首選項

為了將這些概念付諸實踐,讓我們創建一個簡單的 Web 應用程序,允許用戶選擇並保存他們喜歡的主題(淺色或深色)。此首選項將使用 LocalStorage 進行存儲,以便即使在瀏覽器關閉後它仍然存在。

HTML:



  
  
  Theme Selector
  


  

Theme Selector

解釋:

  • 主題選擇:使用者可以透過點選對應的按鈕來選擇淺色或深色主題。
  • 儲存首選項:選擇主題後,它將儲存在 LocalStorage 中的「theme」鍵下。
  • 載入首選項:頁面載入時,腳本會檢查 LocalStorage 中是否有任何已儲存的主題並自動套用它。

為什麼要使用網路儲存?

Web儲存提供了一種簡單有效的方法來增強使用者體驗。透過在客戶端儲存首選項、會話或其他必要數據,您可以創建更個人化、響應靈敏且無縫的 Web 應用程式。了解並利用 LocalStorage 和 SessionStorage 將幫助您建立更智慧的應用程序,滿足用戶需求,而無需嚴重依賴伺服器端儲存。

結論

LocalStorage 和 SessionStorage 是任何 Web 開發人員的必備工具。它們允許您直接在瀏覽器中儲存數據,從而在數據可用方式和時間方面提供靈活性。無論您需要保留使用者首選項還是維護特定於會話的信息,Web 儲存都可以讓您輕鬆完成此任務。透過掌握這些工具,您可以大幅增強 Web 應用程式的功能和使用者體驗。

版本聲明 本文轉載於:https://dev.to/srijan_karki/a-step-by-step-guide-to-localstorage-and-sessionstorage-storing-data-on-the-client-side-2kjl?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>
  • 哪種方法更有效地用於點 - 填點檢測:射線跟踪或matplotlib \的路徑contains_points?
    哪種方法更有效地用於點 - 填點檢測:射線跟踪或matplotlib \的路徑contains_points?
    在Python Matplotlib's path.contains_points FunctionMatplotlib's path.contains_points function employs a path object to represent the polygon.它...
    程式設計 發佈於2025-06-08
  • 如何限制動態大小的父元素中元素的滾動範圍?
    如何限制動態大小的父元素中元素的滾動範圍?
    在交互式接口中實現垂直滾動元素的CSS高度限制,控制元素的滾動行為對於確保用戶體驗和可訪問性是必不可少的。一種這樣的方案涉及限制動態大小的父元素中元素的滾動範圍。 問題:考慮一個佈局,其中我們具有與用戶垂直滾動一起移動的可滾動地圖div,同時與固定的固定sidebar保持一致。但是,地圖的滾動無限...
    程式設計 發佈於2025-06-08
  • 為什麼使用Firefox後退按鈕時JavaScript執行停止?
    為什麼使用Firefox後退按鈕時JavaScript執行停止?
    導航歷史記錄問題:JavaScript使用Firefox Back Back 此行為是由瀏覽器緩存JavaScript資源引起的。要解決此問題並確保在後續頁面訪問中執行腳本,Firefox用戶應設置一個空功能。 警報'); }; alert('inline Alert')...
    程式設計 發佈於2025-06-08
  • 解決MySQL插入Emoji時出現的\\"字符串值錯誤\\"異常
    解決MySQL插入Emoji時出現的\\"字符串值錯誤\\"異常
    Resolving Incorrect String Value Exception When Inserting EmojiWhen attempting to insert a string containing emoji characters into a MySQL database us...
    程式設計 發佈於2025-06-08
  • 在Python中如何創建動態變量?
    在Python中如何創建動態變量?
    在Python 中,動態創建變量的功能可以是一種強大的工具,尤其是在使用複雜的數據結構或算法時,Dynamic Variable Creation的動態變量創建。 Python提供了幾種創造性的方法來實現這一目標。 利用dictionaries 一種有效的方法是利用字典。字典允許您動態創建密鑰並...
    程式設計 發佈於2025-06-08
  • 為什麼不使用CSS`content'屬性顯示圖像?
    為什麼不使用CSS`content'屬性顯示圖像?
    在Firefox extemers屬性為某些圖像很大,&& && && &&華倍華倍[華氏華倍華氏度]很少見,卻是某些瀏覽屬性很少,尤其是特定於Firefox的某些瀏覽器未能在使用內容屬性引用時未能顯示圖像的情況。這可以在提供的CSS類中看到:。 googlepic { 內容:url(&...
    程式設計 發佈於2025-06-08
  • 如何使用FormData()處理多個文件上傳?
    如何使用FormData()處理多個文件上傳?
    )處理多個文件輸入時,通常需要處理多個文件上傳時,通常是必要的。 The fd.append("fileToUpload[]", files[x]); method can be used for this purpose, allowing you to send multi...
    程式設計 發佈於2025-06-08
  • `console.log`顯示修改後對象值異常的原因
    `console.log`顯示修改後對象值異常的原因
    foo = [{id:1},{id:2},{id:3},{id:4},{id:id:5},],]; console.log('foo1',foo,foo.length); foo.splice(2,1); console.log('foo2', foo, foo....
    程式設計 發佈於2025-06-08
  • Go語言如何動態發現導出包類型?
    Go語言如何動態發現導出包類型?
    與反射軟件包中的有限類型的發現能力相反,本文探索了替代方法,探索了在Runruntime。 go import( “ FMT” “去/進口商” ) func main(){ pkg,err:= incorter.default()。導入(“ time”) 如果er...
    程式設計 發佈於2025-06-08
  • 如何檢查對像是否具有Python中的特定屬性?
    如何檢查對像是否具有Python中的特定屬性?
    方法來確定對象屬性存在尋求一種方法來驗證對像中特定屬性的存在。考慮以下示例,其中嘗試訪問不確定屬性會引起錯誤: >>> a = someClass() >>> A.property Trackback(最近的最新電話): 文件“ ”,第1行, AttributeError: SomeClass...
    程式設計 發佈於2025-06-08
  • 找到最大計數時,如何解決mySQL中的“組函數\”錯誤的“無效使用”?
    找到最大計數時,如何解決mySQL中的“組函數\”錯誤的“無效使用”?
    如何在mySQL中使用mySql 檢索最大計數,您可能會遇到一個問題,您可能會在嘗試使用以下命令:理解錯誤正確找到由名稱列分組的值的最大計數,請使用以下修改後的查詢: 計數(*)為c 來自EMP1 按名稱組 c desc訂購 限制1 查詢說明 select語句提取名稱列和每個名稱...
    程式設計 發佈於2025-06-08
  • 大批
    大批
    [2 數組是對象,因此它們在JS中也具有方法。 切片(開始):在新數組中提取部分數組,而無需突變原始數組。 令ARR = ['a','b','c','d','e']; // USECASE:提取直到索引作...
    程式設計 發佈於2025-06-08
  • 如何使用“ JSON”軟件包解析JSON陣列?
    如何使用“ JSON”軟件包解析JSON陣列?
    parsing JSON與JSON軟件包 QUALDALS:考慮以下go代碼:字符串 } func main(){ datajson:=`[“ 1”,“ 2”,“ 3”]`` arr:= jsontype {} 摘要:= = json.unmarshal([] byte(...
    程式設計 發佈於2025-06-08
  • 在Ubuntu/linux上安裝mysql-python時,如何修復\“ mysql_config \”錯誤?
    在Ubuntu/linux上安裝mysql-python時,如何修復\“ mysql_config \”錯誤?
    mysql-python安裝錯誤:“ mysql_config找不到”“ 由於缺少MySQL開發庫而出現此錯誤。解決此問題,建議在Ubuntu上使用該分發的存儲庫。使用以下命令安裝Python-MysqldB: sudo apt-get安裝python-mysqldb sudo pip in...
    程式設計 發佈於2025-06-08
  • 為什麼PYTZ最初顯示出意外的時區偏移?
    為什麼PYTZ最初顯示出意外的時區偏移?
    與pytz 最初從pytz獲得特定的偏移。例如,亞洲/hong_kong最初顯示一個七個小時37分鐘的偏移: 差異源利用本地化將時區分配給日期,使用了適當的時區名稱和偏移量。但是,直接使用DateTime構造器分配時區不允許進行正確的調整。 example pytz.timezone(&#...
    程式設計 發佈於2025-06-08

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3