Html5 Step by Step(二) 本地存儲


在上篇的文章中我們看過了Html5中拖動API,本篇文章中會就HTML5中的Web Storage、本地數據庫進行一些簡單的介紹。

Web Storage

在Html4時代,如果我們需要把數據存在客戶端,我們想到的就是Cookie。但是Cookie本來就有很多不好的地方,比如Cookie的里面存儲的大小只能是4kb;每次請求時都會將Cookie信息包含在請求信息中,增加了額外的帶寬。在Html5中,提供了sessionStorage跟localStorage來進行本地數據的存儲。

  • sessionStorage:數據的存儲只在特定的會話中,數據只會保留到瀏覽器關閉之前,適合保存臨時數據;
  • localStorage:存儲在本地硬盤上面,持久化存在,適合保存長時間數據。

sessionStorage、localStorage支持的方法:

方法名 作用
setItem(key,value) 保存數據
getItem(key) 獲取數據
removeItem(key) 提出健值
clear 清除數據

WebStorage Demo

下面做個簡單的Demo,從一個輸入框中獲取值保存到sessionStorage中,然后讀取出來顯示。

HTML:

<body>
        <div id="msg"></div>
        <input type="text" id="input" />
        <input type="button" value="Save Data" onclick="saveData('input')" />
        <input type="button" value="Get Data" onclick="getData('msg')" />
    </body>

Javascript:

function saveData(id)
{
    var txt = document.getElementById(id);
    sessionStorage.setItem('data',txt.value);
}
function getData(id)
{
    var msg = document.getElementById(id);
    msg.innerHTML = sessionStorage.getItem('data');
}

運行效果:

image

Web Sql DataBase

在Html5中同時提供了一個可以通過SQL語言來訪問的本地數據庫,我們可以輕松的進行訪問。在使用Web Sql DataBase時,我們主要需要兩個步驟:

  • 創建或則打開數據庫;
  • 創建事務,通過事物執行SQL。

創建數據庫,我們通過openDataBase方法創建一個訪問數據庫對象:

var db = openDatabase('MyData', '', 'My Data', 404800);

創建完成數據庫之后我們可以通過數據的事物來創建表、讀寫數據。

創建表:

db.transaction(function (tx) {
                   tx.executeSql('CREATE TABLE IF NOT EXISTS MsgData(name TEXT,message TEXT, time INTEGER)', []);
               });

寫入數據:

tx.executeSql('INSERT INTO MsgData VALUES(?,?,?)', [name, msg, new Date().getTime()], function (tx, rs) {
    alert('Add data successful!');
},
function (tx, error) {
    alert(error.source + ":" + error.message);
});

在上面的方法中我們看到兩個回掉函數,第一個回調函數的表示執行SQL成功后的回調,第二個回掉函數是執行失敗的回調函數。在我們執行查詢時,查詢成功之后,結果會放在rs里面。

這里面我們做一個Demo,一個留言板的Demo,將數據存入Web Sql DataBase里面。具體代碼這里就不貼出來,代碼在我的Git里面的WebSqlDataBase查看。通過Chrome瀏覽器,我們可以看到數據庫里面的數據:

image

其中MyData為Demo中建立的數據庫,MsgData為表名,右側的則是增加的記錄。

總結

在本篇Post中,我們看過了WebStorage跟WebSqlDataBase,通過這個功能其實為我們做Web Appliction提供很大的幫助。(WebStorage代碼地址在此)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM