摘要:什么是是里面引入的一個(gè)類似于的本地存儲(chǔ)功能,可以用于客戶端的本地存儲(chǔ),其相對(duì)于來說有以下幾點(diǎn)優(yōu)勢(shì)存儲(chǔ)空間大只有的存儲(chǔ)空間,而在官方建議中為每個(gè)網(wǎng)站。而則是將數(shù)據(jù)存儲(chǔ)在本地,理論上來說數(shù)據(jù)永遠(yuǎn)不會(huì)消失,除非人為刪除。
什么是Web Storage
Web Storage是HTML5里面引入的一個(gè)類似于cookie的本地存儲(chǔ)功能,可以用于客戶端的本地存儲(chǔ),其相對(duì)于cookie來說有以下幾點(diǎn)優(yōu)勢(shì):
存儲(chǔ)空間大:cookie只有4KB的存儲(chǔ)空間,而Web Storage在官方建議中為每個(gè)網(wǎng)站5M。
可選擇性強(qiáng):Web Storage分為兩種:sessionStorage和localStorage
Web Storage的使用方法在使用上,session Storage和local Storage大同小異,只是session Storage是將數(shù)據(jù)臨時(shí)存儲(chǔ)在session中,瀏覽器關(guān)閉,數(shù)據(jù)隨之消失。而local Storage則是將數(shù)據(jù)存儲(chǔ)在本地,理論上來說數(shù)據(jù)永遠(yuǎn)不會(huì)消失,除非人為刪除。
API:
保存數(shù)據(jù) localStorage.setItem( key, value ); sessionStorage.setItem( key, value );
讀取數(shù)據(jù) localStorage.getItem( key ); sessionStorage.getItem( key );
刪除單個(gè)數(shù)據(jù)localStorage.removeItem( key ); sessionStorage.removeItem( key );
刪除全部數(shù)據(jù)localStorage.clear( ); sessionStorage.clear( );
獲取索引的keylocalStorage.key( index ); sessionStorage.key( index );
注意:Web Storage的API只能操作字符串
在使用Web Storage之前,我們需要注意以下幾點(diǎn):
僅支持支持IE8及以上版本
由于只能對(duì)字符串類型數(shù)據(jù)進(jìn)行操作,所以對(duì)一些JSON對(duì)象需要進(jìn)行轉(zhuǎn)換
因?yàn)槭敲魑拇鎯?chǔ),所以毫無隱私性可言,絕對(duì)不能用于存儲(chǔ)重要信息
會(huì)是瀏覽器加載速度在一定程度上變慢
無法被爬蟲程序爬取
使用Web Storage之前,請(qǐng)加上以下代碼,對(duì)瀏覽器對(duì)Web Storage的支持性進(jìn)行判斷
if(window.localStorage){//或者window.sessionStorage alert("瀏覽器支持localStorage") //主邏輯業(yè)務(wù) }else{ alert("瀏覽不支持localStorage") //替代方法 }
我們來寫一個(gè)學(xué)生管理小程序用于演示W(wǎng)eb Storage的基本用法
簡(jiǎn)單的html頁面先準(zhǔn)備好
在這個(gè)程序里面我們將實(shí)現(xiàn)增刪查的基本功能,修改數(shù)據(jù)的功能相信大家看完后自己就能寫出來。
接下來開始寫方法:
存儲(chǔ)
//利用localStorage存儲(chǔ)數(shù)據(jù) function save() { var contact = new Object(); var Name = document.getElementById("name").value; var Sex = document.getElementById("sex").value; var Num = document.getElementById("num").value; var Add = document.getElementById("add").value; var Tel = document.getElementById("tel").value; if(JTrim(Name) != "" && JTrim(Sex) != "" && JTrim(Num) != "" && JTrim(Add) != "" && JTrim(Tel) != "") { contact.name = Name; contact.sex = Sex; contact.num = Num; contact.add = Add; contact.tel = Tel; var str = JSON.stringify(contact);//對(duì)JSON對(duì)象進(jìn)行處理,用于從一個(gè)對(duì)象解析出字符串 if(window.localStorage) { localStorage.setItem(contact.name,str); } else { alert("您暫時(shí)還無法使用本功能"); return; } } else { alert("請(qǐng)輸入內(nèi)容"); } }
其中用到了Trim()這個(gè)方法,用于判斷輸入是否為空
function JTrim(s) { return s.replace(/(^s*)|(s*$)/g, ""); }
展示所有信息
function loadAll() { var resource = document.getElementById("list"); if(window.localStorage) { var result = "
姓名 | 性別 | 學(xué)號(hào) | 家庭住址 | 電話號(hào)碼 |
"+contact.name+" | "+contact.sex+" | "+contact.num+" | "+contact.add+" | "+contact.tel+" |
查詢
function search() { var resource = document.getElementById("tato"); var search_name = document.getElementById("search_name").value; if(window.localStorage) { var str = localStorage.getItem(search_name); if(str != null) { var result = "
姓名 | 性別 | 學(xué)號(hào) | 家庭住址 | 電話號(hào)碼 |
"+contact.name+" | "+contact.sex+" | "+contact.num+" | "+contact.add+" | "+contact.tel+" |
刪除
function del() { var del_name = document.getElementById("del_name").value; if(window.localStorage) { var result = localStorage.getItem(del_name); localStorage.removeItem(del_name); if(result != null) { alert("刪除成功"); } else { alert("系統(tǒng)無此人"); return; } } else { alert("您暫時(shí)還無法使用本功能"); return; } }
在這里如果想對(duì)所有數(shù)據(jù)做刪除處理則只需將localStorage.removeItem();換成localStorage.clear();即可
Demo地址--魔改了一下界面,開心就好=.=
現(xiàn)在讓我們?cè)跒g覽器的開發(fā)者工具里面看一看Web Storage到底是怎么存儲(chǔ)的
我們可以在chrome開發(fā)者工具里面找到Application這個(gè)選項(xiàng),其中就有今天的主角:Local Storage和Session Storage
現(xiàn)在輸入一些數(shù)據(jù)
點(diǎn)擊提交之后我們立刻就能在Local Storage里面看到明文存儲(chǔ)的數(shù)據(jù)(后面的value是以JSON對(duì)象來存儲(chǔ)的,所以在對(duì)其進(jìn)行操作的時(shí)候需要轉(zhuǎn)換格式)
總結(jié)Web Storage固然簡(jiǎn)單實(shí)用,但是數(shù)據(jù)的明文存儲(chǔ)實(shí)在是硬傷,所以各位使用之前請(qǐng)三思
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/50304.html
摘要:什么是是里面引入的一個(gè)類似于的本地存儲(chǔ)功能,可以用于客戶端的本地存儲(chǔ),其相對(duì)于來說有以下幾點(diǎn)優(yōu)勢(shì)存儲(chǔ)空間大只有的存儲(chǔ)空間,而在官方建議中為每個(gè)網(wǎng)站。而則是將數(shù)據(jù)存儲(chǔ)在本地,理論上來說數(shù)據(jù)永遠(yuǎn)不會(huì)消失,除非人為刪除。 什么是Web Storage Web Storage是HTML5里面引入的一個(gè)類似于cookie的本地存儲(chǔ)功能,可以用于客戶端的本地存儲(chǔ),其相對(duì)于cookie來說有以下幾點(diǎn)...
摘要:是客戶端用來存儲(chǔ)數(shù)據(jù)的它既可以在客戶端設(shè)置也可以在服務(wù)器端設(shè)置。會(huì)跟隨任意請(qǐng)求一起發(fā)送標(biāo)準(zhǔn)中的包括了兩種存儲(chǔ)方式和用于本地存儲(chǔ)一個(gè)會(huì)話中的數(shù)據(jù),這些數(shù)據(jù)只有在同一個(gè)會(huì)話中的頁面才能訪問并且當(dāng)會(huì)話結(jié)束后數(shù)據(jù)也隨之銷毀。 Cookie cookie是客戶端用來存儲(chǔ)數(shù)據(jù)的,它既可以在客戶端設(shè)置也可以在服務(wù)器端設(shè)置。cookie會(huì)跟隨任意HTTP請(qǐng)求一起發(fā)送 Web Storage htm...
摘要:和雖然也有存儲(chǔ)大小的限制,但比大得多,可以達(dá)到或更大支持事件通知機(jī)制,可以將數(shù)據(jù)更新的通知發(fā)送給監(jiān)聽者。有時(shí)也用,指某些網(wǎng)站為了辨別用戶身份,進(jìn)行跟蹤而存儲(chǔ)在本地終端上的數(shù)據(jù),通常經(jīng)過加密。 Web Storage介紹 Web Storage帶來的好處 減少網(wǎng)絡(luò)流量:一旦數(shù)據(jù)保存在本地后,就可以避免再向服務(wù)器請(qǐng)求數(shù)據(jù),因此減少不必要的數(shù)據(jù)請(qǐng)求,減少數(shù)據(jù)在瀏覽器和服務(wù)器間不必要地來回傳...
摘要:和雖然也有存儲(chǔ)大小的限制,但比大得多,可以達(dá)到或更大支持事件通知機(jī)制,可以將數(shù)據(jù)更新的通知發(fā)送給監(jiān)聽者。有時(shí)也用,指某些網(wǎng)站為了辨別用戶身份,進(jìn)行跟蹤而存儲(chǔ)在本地終端上的數(shù)據(jù),通常經(jīng)過加密。 Web Storage介紹 Web Storage帶來的好處 減少網(wǎng)絡(luò)流量:一旦數(shù)據(jù)保存在本地后,就可以避免再向服務(wù)器請(qǐng)求數(shù)據(jù),因此減少不必要的數(shù)據(jù)請(qǐng)求,減少數(shù)據(jù)在瀏覽器和服務(wù)器間不必要地來回傳...
摘要:下面圍繞的這樣的目的,即左右知乎網(wǎng)頁上屏幕截圖功能的實(shí)現(xiàn)前端掘金背景最近注意到知乎的屏幕截圖反饋功能,感覺非常不錯(cuò)。正如你期望的,文中的闖關(guān)記之垃圾回收和內(nèi)存管理前端掘金題圖來源,授權(quán)基于協(xié)議。 微信小程序?qū)崙?zhàn)學(xué)習(xí) 起手式 DEMO 仿肯德基 - 前端 - 掘金小程序?大場(chǎng)景? 微信小程序本質(zhì)上來說就是一個(gè) HTML 5(移動(dòng)網(wǎng)頁) 應(yīng)用,用view、scoll-view代替了div標(biāo)...
閱讀 607·2021-11-18 13:12
閱讀 1323·2021-11-15 11:39
閱讀 2486·2021-09-23 11:22
閱讀 6220·2021-09-22 15:15
閱讀 3668·2021-09-02 09:54
閱讀 2320·2019-08-30 11:10
閱讀 3252·2019-08-29 14:13
閱讀 2918·2019-08-29 12:49