电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

如何在JavaScript中使用localStorage詳情

瀏覽:183日期:2023-10-04 18:24:04

如果你是一名開發(fā)人員,想要進入到.NET的世界,你需要知道都有哪些可能。由于.NET Framework是.NET生態(tài)系統(tǒng)中最流行的技術(shù),你可以用它來構(gòu)建各種各樣的應用程序,但是最近,出現(xiàn)了一些新的東西,比如 .NET Core 和.NET Standard library。我們可以在項目或構(gòu)建中使用它嗎?

localStorage對象是web編程中應用最廣泛的對象之一。它提供了在用戶計算機上本地存儲鍵值對的簡單解決方案。

大多數(shù)web開發(fā)人員都喜歡localStorage API,因為它具有簡單的語法并且可以存儲高達5MB的數(shù)據(jù)。

除此之外,所有主流瀏覽器的最新版本都支持Web Storage API,其中包括localStorage和sessionStorage。只有Opera Mini不支持webstorage API。

你可以通過打開Chrome DevTools快速驗證你的瀏覽器是否支持webstorage API。導航到“控制臺”,鍵入下面的代碼片段,并按enter鍵。

typeof(Storage)

如果你收到一個undefined ,那么你的瀏覽器不支持webstorage API。如果你的瀏覽器支持它,那么你應該看到“function”。

本文探討了以下問題:

localStorage是什么? localStorage和sessionStorage之間有什么區(qū)別? 如何使用localStorage API執(zhí)行CRUD操作 常見的本地存儲有什么坑? localStorage的有什么限制?localStorage是什么?

正如之前提到的,localStorage對象是瀏覽器本地支持的webstorage API的一部分。這是一個簡單而有效的鍵/值存儲解決方案。

對于web開發(fā)人員來說,使用localStorage對象的最大好處是可以脫機存儲。最重要的是,當用戶關(guān)閉瀏覽器或重啟電腦時,我們不會丟失數(shù)據(jù)。即使在計算機重新啟動后,網(wǎng)站仍然可以使用localStorage API讀取本地存儲在用戶計算機上的數(shù)據(jù)。

這個解決方案為web開發(fā)人員提供了幾個有趣的用例。

離線存儲網(wǎng)站的用戶設(shè)置 保留用戶搜索歷史 保留購物車里的物品

接下來,讓我們比較localStorage和sessionStorage。

localStorage和sessionStorage之間有什么區(qū)別?

雖然這兩個api看起來是相同的,但它們的執(zhí)行方式有細微的差異。

localStorage API用于本地存儲數(shù)據(jù)。因此,當用戶刷新選項卡、關(guān)閉瀏覽器或重啟計算機時,本地保存的數(shù)據(jù)不會丟失。它是長期存儲基本數(shù)據(jù)的理想解決方案。

sessionStorage API在頁面刷新后仍然有效,但只能在相同的選項卡中工作。

簡而言之,在為應用程序選擇存儲解決方案時要注意。例如,最好的做法是將用戶設(shè)置信息存儲在localStorage中。相反,sessionStorage最適合為特定會話存儲數(shù)據(jù)。

如何使用localStorage API執(zhí)行CRUD操作

本節(jié)向你展示如何使用localStorage API進行添加、讀取、更新或刪除操作。在此基礎(chǔ)上,我將向你展示一個清除特定頁面localStorage的技巧。

首先,讓我們在localStorage對象中創(chuàng)建一個新的鍵值對。setItem函數(shù)接受一個鍵及其值。為密鑰選擇一個合適的名稱,你可能將使用該密鑰名稱再次進行檢索。

localStorage.setItem(‘my-key’, ‘some-value’)

現(xiàn)在讓我們再次檢索新創(chuàng)建的對象。

let item = localStorage.getItem(‘my-key’)console.log(item) // Output: “some-value”

這很簡單。讓我們繼續(xù)更新my-key的值。注意,我們使用相同的setItem函數(shù)來覆蓋它的值。

localStorage.setItem(‘my-key’, ‘new-value’)

最后,讓我們刪除這個鍵。removeItem函數(shù)接受一個參數(shù),它就是想要刪除的鍵。

localStorage.removeItem(‘my-key’)

為了確保我們已經(jīng)刪除了所有鍵,讓我們使用clear函數(shù)來清除存儲在localStorage中應用程序的所有內(nèi)容。

localStorage.clear()

現(xiàn)在,我們已經(jīng)為更高級的localStorage操作做好了準備。

高級localStorage操作:遍歷

讓我們看看用于遍歷localStorage對象和查找鍵的方法。

第一種方法使用了最直接的for循環(huán)。注意,我們可以直接在localStorage對象上使用length屬性。

for(let i=0; i<localStorage.length; i++) { let key = localStorage.key(i) console.log(`${key} with value ${localStorage.getItem(key)}`)}

我們也可以直接使用key方法檢索相應的鍵。

for (let i = 0; i < localStorage.length; i++){ let key = localStorage.key(i) console.log(key)}

接下來,讓我們看看在使用localStorage API時要避免的坑。

localStorage常見的坑

讓我們看一下與localStorage API交互時最常見的兩個坑。

首先,嘗試存儲一個JSON對象。localStorage API被設(shè)計為鍵-值對存儲。因此,該值只接受字符串,不接受對象。然而,這并不意味著我們不能存儲對象。我們需要將它序列化為一個字符串。

const dinner = { apples: 5, oranges: 1 }localStorage.setItem(‘my-dinner’, JSON.stringify(dinner))

當讀取序列化的對象時,我們需要再次將其解析為JSON。

let dinner = JSON.parse(localStorage.getItem(‘my-dinner’))

其次,嘗試存儲一個布爾值。同樣,localStorage API只支持字符串。存儲布爾值時要小心。

幸運的是,該解決方案類似于存儲一個JSON對象。當存儲一個布爾值時,setItem函數(shù)將把它轉(zhuǎn)換為像這樣的字符串- ' true '。要讀取帶有字符串的布爾值,我們可以使用JSON.parse方法將其轉(zhuǎn)換回布爾值。

let myBool = JSON.parse(localStorage.getItem(‘my-bool’))localStorage的限制

這里是對localStorage限制的快速回顧。

基于字符串的存儲 大多數(shù)瀏覽器的存儲空間有限,最多可達5 MB 嘗試存儲巨大字符串時會阻塞主線程。確保不要同時更新相同的鍵,因為這將導致問題。在這種情況下,最好尋找替代存儲解決方案,因為localStorage API不是為這個目的而設(shè)計的。 Web worker或web service無法訪問localStorage 沒有內(nèi)置的安全機制。因此,我們不建議存儲密碼或與身份驗證相關(guān)的數(shù)據(jù)。任何可以訪問用戶瀏覽器的人都可以打開一個頁面并讀取存儲在localStorage中的信息,就像圖書館中公共可用的計算機一樣。

到此這篇關(guān)于如何在JavaScript中使用localStorage的文章就介紹到這了,更多相關(guān)如何在JavaScript中使用localStorage內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: Boden齿轮油泵-ketai齿轮泵-yuken油研-无锡新立液压有限公司 | 南京PVC快速门厂家南京快速卷帘门_南京pvc快速门_世界500强企业国内供应商_南京美高门业 | 水平垂直燃烧试验仪-灼热丝试验仪-漏电起痕试验仪-针焰试验仪-塑料材料燃烧检测设备-IP防水试验机 | 密集架|电动密集架|移动密集架|黑龙江档案密集架-大量现货厂家销售 | 知名电动蝶阀,电动球阀,气动蝶阀,气动球阀生产厂家|价格透明-【固菲阀门官网】 | 防火阀、排烟防火阀、电动防火阀产品生产销售商-德州凯亿空调设备有限公司 | 天一线缆邯郸有限公司_煤矿用电缆厂家_矿用光缆厂家_矿用控制电缆_矿用通信电缆-天一线缆邯郸有限公司 | 塑胶地板-商用PVC地板-pvc地板革-安耐宝pvc塑胶地板厂家 | 济南保安公司加盟挂靠-亮剑国际安保服务集团总部-山东保安公司|济南保安培训学校 | 美缝剂_美缝剂厂家_美缝剂加盟-地老板高端瓷砖美缝剂 | 英语词典_成语词典_日语词典_法语词典_在线词典网 | 玻璃钢型材-玻璃钢风管-玻璃钢管道,生产厂家-[江苏欧升玻璃钢制造有限公司] | 超高频感应加热设备_高频感应电源厂家_CCD视觉检测设备_振动盘视觉检测设备_深圳雨滴科技-深圳市雨滴科技有限公司 | 屏蔽泵厂家,化工屏蔽泵_维修-淄博泵业| 赛尔特智能移动阳光房-阳光房厂家-赛尔特建筑科技(广东)有限公司 | 衬氟止回阀_衬氟闸阀_衬氟三通球阀_衬四氟阀门_衬氟阀门厂-浙江利尔多阀门有限公司 | 免费个人pos机申请办理-移动pos机刷卡-聚合收款码办理 | 桑茶-七彩贝壳桑叶茶 长寿茶| 自动部分收集器,进口无油隔膜真空泵,SPME固相微萃取头-上海楚定分析仪器有限公司 | LED显示屏_LED屏方案设计精准报价专业安装丨四川诺显科技 | 至顶网| 新车测评网_网罗汽车评测资讯_汽车评测门户报道| 定制防伪标签_防伪标签印刷_防伪标签厂家-510品保防伪网 | 粉末冶金-粉末冶金齿轮-粉末冶金零件厂家-东莞市正朗精密金属零件有限公司 | 神超官网_焊接圆锯片_高速钢锯片_硬质合金锯片_浙江神超锯业制造有限公司 | 上海小程序开发-上海小程序制作公司-上海网站建设-公众号开发运营-软件外包公司-咏熠科技 | 不锈钢闸阀_球阀_蝶阀_止回阀_调节阀_截止阀-可拉伐阀门(上海)有限公司 | 创绿家招商加盟网-除甲醛加盟-甲醛治理加盟-室内除甲醛加盟-创绿家招商官网 | 炭黑吸油计_测试仪,单颗粒子硬度仪_ASTM标准炭黑自销-上海贺纳斯仪器仪表有限公司(HITEC中国办事处) | 活性炭厂家-蜂窝活性炭-粉状/柱状/果壳/椰壳活性炭-大千净化-活性炭 | 红立方品牌应急包/急救包加盟,小成本好项目代理_应急/消防/户外用品加盟_应急好项目加盟_新奇特项目招商 - 中红方宁(北京) 供应链有限公司 | 仪器仪表网 - 永久免费的b2b电子商务平台 | ET3000双钳形接地电阻测试仪_ZSR10A直流_SXJS-IV智能_SX-9000全自动油介质损耗测试仪-上海康登 | 橡胶弹簧|复合弹簧|橡胶球|振动筛配件-新乡市永鑫橡胶厂 | 经济师考试_2025中级经济师报名时间_报名入口_考试时间_华课网校经济师培训网站 | 消电检公司,消电检价格,北京消电检报告-北京设施检测公司-亿杰(北京)消防工程有限公司 | PVC快速门-硬质快速门-洁净室快速门品牌厂家-苏州西朗门业 | 100_150_200_250_300_350_400公斤压力空气压缩机-舰艇航天配套厂家 | 电缆接头-防爆电缆接头-格兰头-金属电缆接头-防爆填料函 | 杭州可当科技有限公司—流量卡_随身WiFi_AI摄像头一站式解决方案 | 减速机三参数组合探头|TSM803|壁挂式氧化锆分析仪探头-安徽鹏宸电气有限公司 |