在這用一個簡單的示例在講解一下如何利用Web Storage來保存和讀取數據。
示例HTML代碼如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>HTML5 WebStorage 留言本</title> <script type="text/javascript" src="JS/liuyanben.js"></script> </head> <body> <h3>HTML5 WebStorage 留言本</h3> <textarea id="demo" cols="60" rows="10"></textarea><br /> <input type="button" value="留言" onclick="savelocalStorage('demo');" /> <input type="button" value="清除留言" onclick="clearlocalStorage('msg');" /> <hr /> <p id="msg"></p> </body> </html> |
示例所用到的liuyanben.js 代碼如下:
// JavaScript Document function savelocalStorage(id){ var data=document.getElementById(id).value; var time=new Date().getTime(); localStorage.setItem(time,data); loadlocalStorage('msg'); } function loadlocalStorage(id){ var result='<table border="1">'; for(var i=0;i<localStorage.length;i++){ var key=localStorage.key(i); var value=localStorage.getItem(key); var date=new Date(); date.setTime(key); var datestr=date.toGMTString(); result +='<tr><td>'+value+'</td><td>'+datestr+'</td></tr>'; } result +='</table>'; var target = document.getElementById(id); target.innerHTML=result; } function clearlocalStorage(){ localStorage.clear(); loadlocalStorage('msg'); alert("localStorage留言已被清除!"); } |
通過我們發現這個JS代碼中有三個調用的函數,savalocalStorage、loadlocalStorage和clearlocalStorage。
1.savalocalStorage:使用new Date().getTime()得到當前時間,調用loadlocalStorage,將時間保存為鍵名,將文本框中的保存為鍵值,再調用localStorage函數在頁面上顯示保存的數據。
2.loadlocalStorage:取得數據用到了localStorage.length和localStorage.key兩個重要的localStorage函數。localStorage.length是所有保存在localStorage中的數據條數,localStorage.key是將數據的索引號做為index傳入,可以得到索引號對應的數據。索引從0開始,如第2條數據的所以號是1。
3.clearlocalStorage:利用localStorage中的clear方法,清除保存在localStorage中的全部數據。
注:為什么以日期和時間來做為鍵名?因為日期和時間的值是以時間戳的形式進行管理,所以不可能存在重復的鍵名。