摘要:本地存儲(chǔ)是提供的在客戶端存儲(chǔ)數(shù)據(jù)的新方法,主要作用是將數(shù)據(jù)保存在客戶端中,并且數(shù)據(jù)是永久保存的,除非人為干預(yù)刪除。的使用的基本有存儲(chǔ)的值為獲取的值移除的記錄清空存儲(chǔ)返回所有存儲(chǔ)遍歷所有存儲(chǔ)。
本地存儲(chǔ)localstorage
localstorage 是 HTML5 提供的在客戶端存儲(chǔ)數(shù)據(jù)的新方法,主要作用是將數(shù)據(jù)保存在客戶端中,并且數(shù)據(jù)是永久保存的,除非人為干預(yù)刪除。
localstorage作為本地存儲(chǔ)來使用,解決了cookie存儲(chǔ)空間不足的問題:cookie中每條cookie的存儲(chǔ)空間為4k,但localStorage的存儲(chǔ)空間有5M大小。另外,相比于cookie,localStorage可以節(jié)約帶寬,在同一個(gè)域內(nèi),瀏覽器每次向服務(wù)器發(fā)送請(qǐng)求,http都會(huì)帶著cookie,使cookie在瀏覽器和服務(wù)器之間來回傳遞,浪費(fèi)帶寬,但localStorage將第一次請(qǐng)求的數(shù)據(jù)直接存儲(chǔ)到本地,避免了來回傳遞。
localstorage 的局限
1、只有版本較高的瀏覽器中才支持 localstorage
2、localStorage的值的類型限定為string類型,使用 JSON 時(shí)需轉(zhuǎn)換
3、如果存儲(chǔ)內(nèi)容過多會(huì)消耗內(nèi)存空間,導(dǎo)致頁面變卡,因?yàn)閘ocalStorage本質(zhì)上是對(duì)字符串的讀取
localstorage 有兩種方法:分別是 localstorage 和 sessionStorage 。sessionStorage 方法針對(duì)一個(gè) session 進(jìn)行數(shù)據(jù)存儲(chǔ)。當(dāng)用戶關(guān)閉瀏覽器窗口后,數(shù)據(jù)會(huì)被刪除。localStorage與sessionStorage的唯一區(qū)別就是localStorage屬于永久性存儲(chǔ),而sessionStorage在當(dāng)會(huì)話結(jié)束的時(shí)候,sessionStorage中的鍵值對(duì)會(huì)被清空。
localstorage的用法
我們?cè)谑褂胠ocalStorage的時(shí)候,需要先判斷瀏覽器是否支持localStorage這個(gè)屬性:
if(window.localStorage){ alert("瀏覽器支持localStorage"); }else{ alert("瀏覽器支持localStorage"); }??
接下來分別是它的寫入、讀取、刪除
//localStorage的寫入 var storage=window.localStorage; storage["a"]=1; //寫入a字段 storage.b=2; //寫入b字段 storage.setItem("c",3); //寫入c字段 console.log(typeof storage["a"]); //string console.log(typeof storage["b"]); //string console.log(typeof storage["c"]);??//string //localStorage的讀取 var a=storage.a; console.log(a); //1 var b=storage["b"]; console.log(b); //2 var c=storage.getItem("c"); console.log(c);?? //3 //localStorage的刪除 storage.clear(); //將localStorage的所有內(nèi)容清除
使用key()方法,獲取相應(yīng)的鍵
var storage=window.localStorage; storage.a=1; storage.setItem("c",3); for(var i=0;i對(duì)用戶訪問頁面的次數(shù)進(jìn)行計(jì)數(shù):
if(localStorage.pagecount){ localStorage.pagecount = Number(localStorage.pagecount)+1; }else{ localStorage.pagecount = 1; } document.write("你第"+localStorage.pagecount+"訪問該頁面");??sessionStorage的用法和localStorage一樣用法和localStorage一樣,但是關(guān)閉計(jì)數(shù)頁面后再打開時(shí)會(huì)重新開始計(jì)數(shù)。
store.jsGitHub地址
store.js 是一個(gè)兼容所有瀏覽器的 LocalStorage 包裝器,不需要借助 Cookie 或者 Flash來實(shí)現(xiàn)。它提供非常了簡(jiǎn)潔的 API 來實(shí)現(xiàn)跨瀏覽器的本地存儲(chǔ)功能。store.js的使用
store.js的基本API有:
store.set(key, val) //存儲(chǔ) key 的值為 val; store.get(key) //獲取 key 的值; store.remove(key) //移除 key 的記錄; store.clear() //清空存儲(chǔ); store.getAll() //返回所有存儲(chǔ); store.forEach() //遍歷所有存儲(chǔ)。使用store.js提供的方法,需要先引入store.min.js插件:
首先判斷瀏覽器是否支持本地存儲(chǔ)
set
單個(gè)存儲(chǔ)字符
格式:store.set(key, data[, overwrite]);store.set("name","mavis"); //存儲(chǔ)name的值為 mavis store.set("name","angel"); //將name的值存儲(chǔ)為angel在控制臺(tái)顯示
get
獲取存入的key值
格式:store.get(key[, alt])store.set("name","mavis"); store.set("name","angel"); store.get("name"); //angelremove
移除key的記錄store.remove("name");在控制臺(tái)可以看到name的值已經(jīng)被移除
clear
清除所有本地存儲(chǔ):store.clear();getAll
從所有存儲(chǔ)中獲取值
格式:store.getAll()store.set("name","mavis"); store.getAll().user.name == "mavis"; //trueforEach
遍歷所有的值store.set("user",{name:"mavis",likes:"javascript"}); // 存儲(chǔ)對(duì)象 - 自動(dòng)調(diào)用 JSON.stringify var user = store.get("user"); // 獲取存儲(chǔ)的對(duì)象 - 自動(dòng)執(zhí)行 JSON.parse store.forEach(function(key, val) { console.log(key, "==", val) }) // 遍歷所有存儲(chǔ)使用store,js簡(jiǎn)化了使用localStorage原生方法的操作 LocalStorage 并沒有提供過期時(shí)間接口,只能通過存儲(chǔ)時(shí)間做比對(duì)實(shí)現(xiàn)。最后介紹一下在瀏覽器中查看LocalStorage的方法:F12打開開發(fā)人員工具→Application→Storage→LocalStorage
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/80981.html
摘要:是一個(gè)實(shí)現(xiàn)了瀏覽器的本地存儲(chǔ)的封裝,不是通過和技術(shù)實(shí)現(xiàn),而是使用。小弟我主要是用于,,手機(jī)等先進(jìn)瀏覽器里面跑。 showImg(https://img.shields.io/github/issues/jaywcjlove/store.js.svg); showImg(https://img.shields.io/github/forks/jaywcjlove/store.js.svg...
摘要:彈出層是一個(gè)輕量級(jí)的庫用于管理工具提示和彈窗效果。一個(gè)帶有的跨瀏覽器富文本編輯器。由制作,適用于每天寫作的富文本編輯器。輕量的操作庫。是一個(gè)快速簡(jiǎn)單輕量級(jí)的瀏覽器功能檢測(cè)庫。它沒有任何的依賴,并且壓縮后僅有。極小跨平臺(tái)的全屏插件。 在這里維持一個(gè)持續(xù)更新的地方 圖片 baguetteBox.js - 是一個(gè)簡(jiǎn)單易用的響應(yīng)式圖像燈箱效果腳本。demo Lightgallery.js -...
摘要:彈出層是一個(gè)輕量級(jí)的庫用于管理工具提示和彈窗效果。一個(gè)帶有的跨瀏覽器富文本編輯器。由制作,適用于每天寫作的富文本編輯器。輕量的操作庫。是一個(gè)快速簡(jiǎn)單輕量級(jí)的瀏覽器功能檢測(cè)庫。它沒有任何的依賴,并且壓縮后僅有。極小跨平臺(tái)的全屏插件。 在這里維持一個(gè)持續(xù)更新的地方 圖片 baguetteBox.js - 是一個(gè)簡(jiǎn)單易用的響應(yīng)式圖像燈箱效果腳本。demo Lightgallery.js -...
摘要:彈出層是一個(gè)輕量級(jí)的庫用于管理工具提示和彈窗效果。一個(gè)帶有的跨瀏覽器富文本編輯器。由制作,適用于每天寫作的富文本編輯器。輕量的操作庫。是一個(gè)快速簡(jiǎn)單輕量級(jí)的瀏覽器功能檢測(cè)庫。它沒有任何的依賴,并且壓縮后僅有。極小跨平臺(tái)的全屏插件。 在這里維持一個(gè)持續(xù)更新的地方 圖片 baguetteBox.js - 是一個(gè)簡(jiǎn)單易用的響應(yīng)式圖像燈箱效果腳本。demo Lightgallery.js -...
閱讀 4047·2021-11-18 13:21
閱讀 4869·2021-09-27 14:01
閱讀 3139·2019-08-30 15:53
閱讀 2415·2019-08-30 15:43
閱讀 1763·2019-08-30 13:10
閱讀 1550·2019-08-29 18:39
閱讀 916·2019-08-29 15:05
閱讀 3372·2019-08-29 14:14