首頁 > web前端 > H5教程 > 主體

Html5web本機儲存實例詳細說明

高洛峰
發布: 2017-03-12 16:47:20
原創
1355 人瀏覽過

這篇文章主要介紹Html5web本地儲存實例詳細說明的相關資料,需要的朋友可以參考下

Web Storage是HTML5引入的一個非常重要的功能,可以在客戶端本地存儲數據,類似HTML4的cookie,但可實現功能要比cookie強大的多,cookie大小被限制在4KB,Web Storage官方建議為每個網站5MB。

Web Storage又分為兩種:

sessionStorage

localStorage

從字面意思就可以很清楚的看出來,sessionStorage將資料保存在session中,瀏覽器關閉也就沒了;而localStorage則一直將資料保存在客戶端本地;

#不管是sessionStorage,還是localStorage,可使用的API#都相同,常用的有以下幾個(以localStorage為例):

儲存資料:localStorage.setItem (key,value);讀取資料:localStorage.getItem(key);刪除單一資料:localStorage.removeItem(key);刪除所有資料:localStorage.clear ();得到某個索引的key:localStorage.key(index);

如上,key和value都必須為字串,換言之,web Storage的API只能操作字串。

接下來,我們透過Web Storage開發一個簡單的通訊錄小程序,以演示相關API的使用方法;我們要實現如下功能:

輸入聯絡人,聯絡人有姓名、手機號碼2個字段,以手機號碼作為key存入localStorage;根據手機號碼,查找機主;列出當前已保存的所有聯絡人資訊;

首先先寫一個簡單的html代碼

<!DOCTYPEHTML>
<html>
<head>
<metacharsetmetacharset="utf-8"/>
<title>HTML5本地存储之WebStorage篇</title>
</head>
<body>
<pstylepstyle="border:2pxdashed#ccc;width:320px;text-align:center;">
<labelforlabelfor="user_name">姓名:</label>
<inputtypeinputtype="text"id="user_name"name="user_name"class="text"/>
<br/>
<labelforlabelfor="mobilephone">手机:</label>
<inputtypeinputtype="text"id="mobilephone"name="mobilephone"/>
<br/>
<inputtypeinputtype="button"onclick="save()"value="新增记录"/>
<hr/>
<labelforlabelfor="search_phone">输入手机号:</label>
<inputtypeinputtype="text"id="search_phone"name="search_phone"/>
<inputtypeinputtype="button"onclick="find()"value="查找机主"/>
<pidpid="find_result"><br/></p>
</p>
<br/>
<pidpid="list">
</p>
</body>
</html>
登入後複製

寫完頁面的話,展示效果差不多就是如下圖:

Html5web本機儲存實例詳細說明

要實現聯絡人的保存,只需要簡單實現如下JS方法即可:

functionsave(){   
varmobilephone=document.getElementById("mobilephone").value;   
varuser_name=document.getElementById("user_name").value;   
localStorage.setItem(mobilephone,user_name);   
} //用于保存数据
登入後複製

要實作查找機主,則實作如下JS方法:

//查找数据   
functionfind(){   
varsearch_phone=document.getElementById("search_phone").value;   
varname=localStorage.getItem(search_phone);   
varfind_result=document.getElementById("find_result");   
find_result.innerHTML=search_phone+"的机主是:"+name;   
}
登入後複製

Html5web本機儲存實例詳細說明


要展現所有已儲存的聯絡人訊息,則需要使用localStorage.key(index)方法,如下:

//将所有存储在localStorage中的对象提取出来,并展现到界面上   
functionloadAll(){   
varlist=document.getElementById("list");   
if(localStorage.length>0){   
varresult="<tableborder=&#39;1&#39;>";   
result+="<tr><td>姓名</td><td>手机号码</td></tr>";   
for(vari=0;i<localStorage.length;i++){   
varmobilephone=localStorage.key(i);   
varname=localStorage.getItem(mobilephone);   
result+="<tr><td>"+name+"</td><td>"+mobilephone+"</td></tr>";   
}   
result+="</table>";   
list.innerHTML=result;   
}else{   
list.innerHTML="目前数据为空,赶紧开始加入联系人吧";   
}   
}
登入後複製

效果如下:

Html5web本機儲存實例詳細說明

問題:如上的演示,都只有2個字段,姓名和手機號碼,如果要存入更為豐富的聯絡人信息,比如公司名稱、家庭地址等,如何實現? Web Storage不是只能處理字串嗎?此時,可以利用JSONstringify()方法,將複雜物件轉變成字串,存入Web Storage中;當從Web Storage中讀取時,可以透過JSON的parse()方法再轉換成JSON物件;

如下簡單示範增加了公司屬性的聯絡人保存JS程式碼:

//保存数据    
functionsave(){   
varcontact=newObject;   
contact.user_name=document.getElementById("user_name").value;   
contact.mobilephone=document.getElementById("mobilephone").value;   
contact.company=document.getElementById("company").value;   
varstr=JSON.stringify(contact);   
localStorage.setItem(contact.mobilephone,str);   
loadAll();   
}   
//将所有存储在localStorage中的对象提取出来,并展现到界面上   
functionloadAll(){   
varlist=document.getElementById("list");   
if(localStorage.length>0){   
varresult="<tableborder=&#39;1&#39;>";   
result+="<tr><td>姓名</td><td>手机</td><td>公司</td></tr>";   
for(vari=0;i<localStorage.length;i++){   
varmobilephone=localStorage.key(i);   
varstr=localStorage.getItem(mobilephone);   
varcontact=JSON.parse(str);   
result+="<tr><td>"+contact.user_name+"</td><td>"+contact.mobilephone+"</td><td>"+contact.company+"</td></tr>";   
}   
result+="</table>";   
list.innerHTML=result;   
}else{   
list.innerHTML="目前数据为空,赶紧开始加入联系人吧";   
}   
}
登入後複製

#效果如下:

Html5web本機儲存實例詳細說明

以上所述是小編給大家介紹的Html5 web本地儲存實例詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言


以上是Html5web本機儲存實例詳細說明的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!