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ì)話存儲(chǔ)(SessionStorage)的使用
- JS localStorage存儲(chǔ)對(duì)象,sessionStorage存儲(chǔ)數(shù)組對(duì)象操作示例
- JavaScript使用localStorage存儲(chǔ)數(shù)據(jù)
相關(guān)文章
兼容FF和IE的動(dòng)態(tài)table示例自寫(xiě)
Js實(shí)現(xiàn)的動(dòng)態(tài)增加表格的文章有很多,但大多數(shù)都不兼容FF和IE,于是手寫(xiě)了一個(gè),經(jīng)測(cè)試效果還不錯(cuò),特此與大家分享,感興趣的朋友不要錯(cuò)過(guò)2013-10-10
Javascript訪問(wèn)html頁(yè)面的控件的方法詳細(xì)分析
這段時(shí)間在公司比較的空閑,決定研究研究javascript訪問(wèn)html控件,這是很普遍的,這里我系統(tǒng)的研究javascript的訪問(wèn)方式,測(cè)試通過(guò)并有下面一些研究成就,供大家分享和補(bǔ)充。2008-08-08
創(chuàng)建一個(gè)類(lèi)Person的簡(jiǎn)單實(shí)例
如何創(chuàng)建一個(gè)類(lèi)Person?下面小編就為大家?guī)?lái)一篇?jiǎng)?chuàng)建一個(gè)類(lèi)Person的簡(jiǎn)單實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧2016-05-05
小程序獲取用戶(hù)信息的兩種方法詳解(getUserProfile和頭像昵稱(chēng)填寫(xiě))
小程序獲取用戶(hù)信息這部分其實(shí)不難,但是,他有點(diǎn)麻煩,下面這篇文章主要給大家介紹了關(guān)于小程序獲取用戶(hù)信息的兩種方法,主要使用的是getUserProfile和頭像昵稱(chēng)填寫(xiě)這兩種方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08
防止頁(yè)面被iframe(兼容IE,Firefox火狐)
以前發(fā)布的防止被iframe的代碼,容易在火狐瀏覽器下, 不斷的刷新頁(yè)面。所以從網(wǎng)站找到了這篇文章。2010-07-07
微信小程序?qū)崿F(xiàn)購(gòu)物車(chē)頁(yè)面
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)購(gòu)物車(chē)頁(yè)面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07
微信小程序?qū)崿F(xiàn)動(dòng)態(tài)驗(yàn)證碼
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)動(dòng)態(tài)驗(yàn)證碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05
swiperjs實(shí)現(xiàn)導(dǎo)航與tab頁(yè)的聯(lián)動(dòng)
這篇文章主要為大家詳細(xì)介紹了swiperjs實(shí)現(xiàn)導(dǎo)航與tab頁(yè)的聯(lián)動(dòng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-12-12
JavaScript 組件之旅(二)編碼實(shí)現(xiàn)和算法
話說(shuō)上期我們討論了隊(duì)列管理組件的設(shè)計(jì),并且給它取了個(gè)響亮而獨(dú)特的名字:Smart Queue. 這次,我們要將之前的設(shè)計(jì)成果付諸實(shí)踐,用代碼來(lái)實(shí)現(xiàn)它。2009-10-10

