JavaScript本地存儲(chǔ)的幾種方式小結(jié)
在JavaScript中,有幾種常用的方式可以在本地存儲(chǔ)數(shù)據(jù)。以下是主要的幾種本地存儲(chǔ)方式:
LocalStorage:
- 描述: LocalStorage 是 Web Storage API 的一部分,用于在用戶的瀏覽器中存儲(chǔ)鍵值對(duì)。數(shù)據(jù)不會(huì)過(guò)期,除非用戶明確刪除。
- 用法:
// 存儲(chǔ)數(shù)據(jù) localStorage.setItem('key', 'value'); // 獲取數(shù)據(jù) const value = localStorage.getItem('key'); // 移除數(shù)據(jù) localStorage.removeItem('key'); // 清除所有數(shù)據(jù) localStorage.clear();
SessionStorage:
- 描述: SessionStorage 也是 Web Storage API 的一部分,與 LocalStorage 類似,但它存儲(chǔ)的數(shù)據(jù)在頁(yè)面會(huì)話結(jié)束時(shí)(如用戶關(guān)閉瀏覽器標(biāo)簽頁(yè))會(huì)被清除。
- 用法:
// 存儲(chǔ)數(shù)據(jù) sessionStorage.setItem('key', 'value'); // 獲取數(shù)據(jù) const value = sessionStorage.getItem('key'); // 移除數(shù)據(jù) sessionStorage.removeItem('key'); // 清除所有數(shù)據(jù) sessionStorage.clear();
Cookies:
- 描述: Cookies 是小塊的數(shù)據(jù),由瀏覽器存儲(chǔ)在用戶的計(jì)算機(jī)上。它們通常用于存儲(chǔ)會(huì)話信息或用戶偏好設(shè)置,并會(huì)在每次請(qǐng)求時(shí)發(fā)送到服務(wù)器。
- 用法:
// 設(shè)置 Cookie document.cookie = "username=John Doe; expires=Fri, 31 Dec 2023 23:59:59 GMT; path=/"; // 讀取 Cookie function getCookie(name) { let cookieArr = document.cookie.split(";"); for(let i = 0; i < cookieArr.length; i++) { let cookiePair = cookieArr[i].split("="); if(name == cookiePair[0].trim()) { return decodeURIComponent(cookiePair[1]); } } return null; } const username = getCookie("username"); // 刪除 Cookie document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/";
IndexedDB:
- 描述: IndexedDB 是一種低級(jí) API,用于在用戶的瀏覽器中存儲(chǔ)大量結(jié)構(gòu)化數(shù)據(jù)。它類似于 SQL 數(shù)據(jù)庫(kù),但使用的是事務(wù)性數(shù)據(jù)庫(kù)模型。
- 用法:
// 打開(kāi)數(shù)據(jù)庫(kù) let request = indexedDB.open("myDatabase", 1); request.onupgradeneeded = function(event) { let db = event.target.result; let objectStore = db.createObjectStore("customers", { keyPath: "id" }); }; request.onsuccess = function(event) { let db = event.target.result; // 添加數(shù)據(jù) let transaction = db.transaction(["customers"], "readwrite"); let objectStore = transaction.objectStore("customers"); let customer = {id: 1, name: "John Doe", age: 30}; objectStore.add(customer); // 讀取數(shù)據(jù) let transaction = db.transaction(["customers"]); let objectStore = transaction.objectStore("customers"); let request = objectStore.get(1); request.onerror = function(event) { console.log("Unable to retrieve data"); }; request.onsuccess = function(event) { if (request.result) { console.log(request.result.name); } else { console.log("No data found"); } }; };
Web SQL (已廢棄):
- 描述: Web SQL 是一種早期的本地?cái)?shù)據(jù)庫(kù)技術(shù),但已經(jīng)不被推薦使用,并且在現(xiàn)代瀏覽器中逐漸被淘汰。
- 用法: 不推薦使用,建議使用 IndexedDB 作為替代。
這些技術(shù)各有優(yōu)缺點(diǎn),選擇哪一種取決于具體的應(yīng)用場(chǎng)景和需求。對(duì)于簡(jiǎn)單的鍵值對(duì)存儲(chǔ),LocalStorage 和 SessionStorage 是很好的選擇;對(duì)于需要存儲(chǔ)更復(fù)雜和大量數(shù)據(jù)的情況,IndexedDB 更加合適;而 Cookies 則通常用于存儲(chǔ)需要在服務(wù)器和客戶端之間共享的信息。
以上就是JavaScript本地存儲(chǔ)的幾種方式小結(jié)的詳細(xì)內(nèi)容,更多關(guān)于JavaScript本地存儲(chǔ)方式的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- Javascript本地存儲(chǔ)localStorage看這一篇就夠了
- 詳解JavaScript前端如何有效處理本地存儲(chǔ)和緩存
- JavaScript本地存儲(chǔ)全面解析
- javascript中l(wèi)ocalStorage本地存儲(chǔ)(新增、刪除、修改)使用詳細(xì)教程
- JavaScript中本地存儲(chǔ)(LocalStorage)和會(huì)話存儲(chǔ)(SessionStorage)的使用
- 基于js 本地存儲(chǔ)(詳解)
- JS實(shí)現(xiàn)本地存儲(chǔ)信息的方法(基于localStorage與userData)
- javascript中本地存儲(chǔ)localStorage,sessionStorage,cookie,indexDB的用法與使用場(chǎng)景匯總
相關(guān)文章
利用jsPDF實(shí)現(xiàn)將圖片轉(zhuǎn)為pdf
這篇文章主要為大家詳細(xì)介紹了如何利用jsPDF實(shí)現(xiàn)將圖片轉(zhuǎn)為pdf的功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下2023-08-08XHTML-Strict 內(nèi)允許出現(xiàn)的標(biāo)簽
XHTML-Strict 內(nèi)允許出現(xiàn)的標(biāo)簽...2006-12-12bootstrap模態(tài)框關(guān)閉后清除模態(tài)框的數(shù)據(jù)方法
今天小編就為大家分享一篇bootstrap模態(tài)框關(guān)閉后清除模態(tài)框的數(shù)據(jù)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08JavaScript實(shí)現(xiàn)Sleep函數(shù)的代碼
大家知道,JavaScript中沒(méi)有內(nèi)置我們常用的sleep()函數(shù),只有定時(shí)器setTimeout()和循環(huán)定時(shí)器setInterval()2007-03-03Javascript中點(diǎn)擊(click)事件的三種寫法舉例
在JavaScript中Click事件是一種常見(jiàn)的用戶交互事件,表示用戶在網(wǎng)頁(yè)上點(diǎn)擊某個(gè)元素的動(dòng)作,這篇文章主要給大家介紹了關(guān)于Javascript中點(diǎn)擊(click)事件的三種寫法,需要的朋友可以參考下2024-06-06JS二級(jí)菜單不同實(shí)現(xiàn)方法分析【4種方法】
這篇文章主要介紹了JS二級(jí)菜單不同實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了4種不同的二級(jí)下拉菜單實(shí)現(xiàn)方法,需要的朋友可以參考下2018-12-12javascript中的 object 和 function小結(jié)
JavaScript的面向?qū)ο笫腔谠蔚模袑?duì)象都有一條屬于自己的原型鏈。Object與Function可能很多看Object instanceof Function , Function instanceof Object都為true而迷惑,所以首先看下對(duì)象的實(shí)例。2016-08-08詳解CocosCreator中幾種計(jì)時(shí)器的使用方法
這篇文章主要介紹了CocosCreator中幾種計(jì)時(shí)器的使用方法,推薦使用schedule,功能多些,銷毀時(shí)還能自動(dòng)移除2021-04-04