JavaScript和jQuery存儲(chǔ)localStorage的具體實(shí)現(xiàn)方法詳解
JavaScript原生操作localStorage
1. 存儲(chǔ)數(shù)據(jù)
// 存儲(chǔ)字符串
localStorage.setItem('key', 'value');
// 存儲(chǔ)對(duì)象(需先序列化)
const user = { name: 'John', age: 30 };
localStorage.setItem('user', JSON.stringify(user));
2. 讀取數(shù)據(jù)
// 讀取字符串
const value = localStorage.getItem('key');
// 讀取對(duì)象(需反序列化)
const userData = JSON.parse(localStorage.getItem('user'));
3. 刪除數(shù)據(jù)
localStorage.removeItem('key'); // 刪除單個(gè)鍵
localStorage.clear(); // 清空所有存儲(chǔ)
4. 更新數(shù)據(jù)
直接覆蓋原鍵的值:
localStorage.setItem('key', 'newValue');
jQuery操作localStorage
jQuery沒(méi)有提供專(zhuān)門(mén)的localStorage方法,但可以通過(guò)以下方式間接實(shí)現(xiàn):
// 存儲(chǔ)數(shù)據(jù)(本質(zhì)調(diào)用原生API)
$.localStorage = {
set: function(key, value) {
localStorage.setItem(key, JSON.stringify(value));
},
get: function(key) {
return JSON.parse(localStorage.getItem(key));
},
remove: function(key) {
localStorage.removeItem(key);
}
};
// 使用示例
$.localStorage.set('user', { name: 'Alice' });
const user = $.localStorage.get('user');
關(guān)鍵注意事項(xiàng)
數(shù)據(jù)類(lèi)型處理:localStorage僅支持字符串類(lèi)型,存儲(chǔ)對(duì)象/數(shù)組時(shí)需用JSON.stringify()序列化,讀取時(shí)用JSON.parse()反序列化。
存儲(chǔ)限制:每個(gè)域名下約5MB存儲(chǔ)空間(不同瀏覽器有差異),超限會(huì)報(bào)錯(cuò)。
同源策略:數(shù)據(jù)僅在同協(xié)議、同域名、同端口的頁(yè)面間共享。
兼容性:支持所有現(xiàn)代瀏覽器,IE8+也支持。舊版IE可通過(guò)userData行為或第三方庫(kù)(如store.js)實(shí)現(xiàn)兼容。
擴(kuò)展:封裝工具函數(shù)
推薦封裝通用工具函數(shù),便于復(fù)用:
const storage = {
set(key, value) {
localStorage.setItem(key, typeof value === 'string' ? value : JSON.stringify(value));
},
get(key) {
const value = localStorage.getItem(key);
try {
return value.startsWith('{') || value.startsWith('[') ? JSON.parse(value) : value;
} catch {
return value;
}
},
remove(key) {
localStorage.removeItem(key);
}
};
// 使用
storage.set('theme', 'dark');
storage.set('config', { fontSize: 14 });
const theme = storage.get('theme'); // 'dark'
const config = storage.get('config'); // { fontSize: 14 }
jQuery插件方案(可選)
若需更簡(jiǎn)潔的語(yǔ)法,可引入第三方插件如jquery-storage:
// 安裝插件(需先引入jQuery和插件)
$.storage.set('key', value);
$.storage.get('key');
總結(jié):無(wú)論是原生JavaScript還是jQuery,操作localStorage的核心都是調(diào)用瀏覽器的Web Storage API。jQuery用戶(hù)可直接使用原生方法,或通過(guò)簡(jiǎn)單封裝提升開(kāi)發(fā)體驗(yàn)。
到此這篇關(guān)于JavaScript和jQuery存儲(chǔ)localStorage的具體實(shí)現(xiàn)方法詳解的文章就介紹到這了,更多相關(guān)JavaScript存儲(chǔ)localStorage內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- JavaScript 本地存儲(chǔ)localStorage完全指南及應(yīng)用場(chǎng)景
- javascript中本地存儲(chǔ)localStorage,sessionStorage,cookie,indexDB的用法與使用場(chǎng)景匯總
- Javascript本地存儲(chǔ)localStorage看這一篇就夠了
- javascript中l(wèi)ocalStorage本地存儲(chǔ)(新增、刪除、修改)使用詳細(xì)教程
- JavaScript本地?cái)?shù)據(jù)存儲(chǔ)sessionStorage與localStorage使用詳解
- JavaScript中本地存儲(chǔ)(LocalStorage)和會(huì)話(huà)存儲(chǔ)(SessionStorage)的使用
- JS localStorage存儲(chǔ)對(duì)象,sessionStorage存儲(chǔ)數(shù)組對(duì)象操作示例
- JavaScript使用localStorage存儲(chǔ)數(shù)據(jù)
相關(guān)文章
關(guān)于JS中match() 和 exec() 返回值和屬性的測(cè)試
這篇文章主要介紹了關(guān)于JS中match() 和 exec() 返回值和屬性的測(cè)試 的相關(guān)資料,需要的朋友可以參考下2016-03-03
JavaScript實(shí)現(xiàn)時(shí)鐘功能
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)時(shí)鐘功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-06-06
在你的網(wǎng)頁(yè)中嵌入外部網(wǎng)頁(yè)的方法
在你的網(wǎng)頁(yè)中嵌入外部網(wǎng)頁(yè)的方法...2007-04-04
IE6-IE9中tbody的innerHTML不能賦值的解決方法
這篇文章主要介紹了IE6-IE9中tbody的innerHTML不能賦值的解決方法,需要的朋友可以參考下2014-06-06
js中的觸發(fā)事件對(duì)象event.srcElement與event.target詳解
這篇文章主要給大家介紹了js中的觸發(fā)事件對(duì)象event.srcElement與event.target的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-03-03
Javascript ES6中對(duì)象類(lèi)型Sets的介紹與使用詳解
這篇文章主要給大家介紹了關(guān)于Javascript ES6中Sets的介紹與使用的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-07-07
JavaScript實(shí)現(xiàn)定時(shí)頁(yè)面跳轉(zhuǎn)功能示例
這篇文章主要介紹了JavaScript實(shí)現(xiàn)定時(shí)頁(yè)面跳轉(zhuǎn)功能,涉及javascript結(jié)合時(shí)間函數(shù)定時(shí)觸發(fā)自定義函數(shù)功能操作技巧,需要的朋友可以參考下2017-02-02
深入淺析JavaScript中對(duì)事件的三種監(jiān)聽(tīng)方式
最近這段時(shí)間因?yàn)槊刻煲薷木W(wǎng)站,為網(wǎng)站做特效,所以看了很多的js接觸事件,自己只會(huì)使用一小部分,有時(shí)用的時(shí)候也比較混亂,現(xiàn)在系統(tǒng)的整理了一下,本篇文章跟大家分享的是JavaScript中對(duì)事件的三種監(jiān)聽(tīng)方式2015-09-09

