localStorage
- length:唯一的屬性,只讀,用來獲取storage內的鍵值對數量。
- key:根據index獲取storage的鍵名
- getItem:根據key獲取storage內的對應value
- setItem:為storage內添加鍵值對
- removeItem:根據鍵名,刪除鍵值對
- clear:清空storage對象
- var ls=localStorage;console.log(ls.length);//0ls.setItem('name','Byron');ls.setItem('age','24');console.log(ls.length);//2//遍歷localStoragefor(var i=0;i<ls.length;i++){/*age : 24 name : Byron */var key=ls.key(i);console.log(key+' : '+ls.getItem(key));}ls.removeItem('age');for(var i=0;i<ls.length;i++){/*name : Byron */var key=ls.key(i);console.log(key+' : '+ls.getItem(key));}ls.clear();//0console.log(ls.length);
- window.addEventListener('storage',function(e){console.log(e.key+' is changed form '+e.oldValue+' to '+e.newValue+' by '+e.url );console.log(e.storageArea ==localStorage);},false);localStorage.setItem('userName','Byron');
====================http://codepen.io/jianyeruan/pen/mPdrjp?editors=1111
Web SQL數據庫API實際上不是HTML5規范的組成部分,而是單獨的規范。它通過一套API來操縱客戶端的數據庫。Safari、Chrome、Firefox、Opera等主流瀏覽器都已經支持Web SQL Database。HTML5的Web SQL Databases的確很誘惑人,當你發現可以用與mysql查詢一樣的查詢語句來操作本地數據庫時,你會發現這東西挺有趣的。今天,我們一起來了解HTML 5的Web SQL Database API。
下面將一一將介紹怎樣創建打開數據庫,創建表,添加數據,更新數據,刪除數據,刪除表 。
先介紹三個核心方法
1、openDatabase:這個方法使用現有數據庫或創建新數據庫創建數據庫對象。
2、transaction:這個方法允許我們根據情況控制事務提交或回滾。
3、executeSql:這個方法用于執行真實的SQL查詢。
第一步:打開連接并創建數據庫
?
var dataBase = openDatabase("student", "1.0", "學生表", 1024 * 1024, function () { }); if (!dataBase) { alert("數據庫創建失敗!"); } else { alert("數據庫創建成功!"); }解釋一下openDatabase方法打開一個已經存在的數據庫,如果數據庫不存在,它還可以創建數據庫。幾個參數意義分別是:
1,數據庫名稱。
2,版本號 目前為1.0,不管他,寫死就OK。
3,對數據庫的描述。
4,設置數據的大小。
5,回調函數(可省略)。
初次調用時創建數據庫,以后就是建立連接了。
創建的數據庫就存在本地,路徑如下:
C:\Users\Administrator\AppData\Local\Google\Chrome\User Data\Default\databases\http_localhost_* 。
創建的是一個sqllite數據庫,可以用SQLiteSpy打開文件,可以看到里面的數據。SQLiteSpy是一個綠色軟件,可以百度一下下載地址或SQLiteSpy官方下載:SQLiteSpy。
第二步:創建數據表
this.createTable=function() { dataBase.transaction( function(tx) { tx.executeSql( "create table if not exists stu (id REAL UNIQUE, name TEXT)", [], function(tx,result){ alert('創建stu表成功'); }, function(tx, error){ alert('創建stu表失敗:' + error.message); }); }); }解釋一下,
executeSql函數有四個參數,其意義分別是:
1)表示查詢的字符串,使用的SQL語言是SQLite 3.6.19。(必選)
2)插入到查詢中問號所在處的字符串數據。(可選)
3)成功時執行的回調函數。返回兩個參數:tx和執行的結果。(可選)
4)一個失敗時執行的回調函數。返回兩個參數:tx和失敗的錯誤信息。(可選)
第三步:執行增刪改查
1)添加數據:
?
this.insert = function () { dataBase.transaction(function (tx) { tx.executeSql( "insert into stu (id, name) values(?, ?)", [id, '徐明祥'], function () { alert('添加數據成功'); }, function (tx, error) { alert('添加數據失敗: ' + error.message); } ); });?
?
?
?2)查詢數據
?
this.query = function () { dataBase.transaction(function (tx) { tx.executeSql( "select * from stu", [], function (tx, result) { //執行成功的回調函數 //在這里對result 做你想要做的事情吧........... }, function (tx, error) { alert('查詢失敗: ' + error.message); } ); }); }?
特別提醒
上面代碼中執行成功的回調函數有一參數result。?
result:查詢出來的數據集。其數據類型為 SQLResultSet ,就如同C#中的DataTable。?
SQLResultSet 的定義為:
?
interface SQLResultSet { readonly attribute long insertId; readonly attribute long rowsAffected; readonly attribute SQLResultSetRowList rows; };?
其中最重要的屬性—SQLResultSetRowList 類型的 rows 是數據集的“行” 。?
rows 有兩個屬性:length、item 。
故,獲取查詢結果的第一行列名為name的值 :result.rows.item(0).name??。
3)更新數據
?
this.update = function (id, name) { dataBase.transaction(function (tx) { tx.executeSql( "update stu set name = ? where id= ?", [name, id], function (tx, result) { }, function (tx, error) { alert('更新失敗: ' + error.message); }); }); }?
4)刪除數據
this.del = function (id) { dataBase.transaction(function (tx) { tx.executeSql( "delete from stu where id= ?", [id], function (tx, result) { }, function (tx, error) { alert('刪除失敗: ' + error.message); }); }); }5)刪除數據表
?
window.addEventListener('load', function(e) {
window.applicationCache.addEventListener('updateready', function(e) {
if (window.applicationCache.status == window.applicationCache.UPDATEREADY) {
// Browser downloaded a new app cache.
// Swap it in and reload the page to get the new hotness.
window.applicationCache.swapCache();
if (confirm('A new version of this site is available. Load it?')) {
window.location.reload();
}
} else {
// Manifest didn't changed. Nothing new to server.
}
}, false);
}, false);
HTML5的本地存儲,還提供了一個storage事件,可以對鍵值對的改變進行監聽,使用方法如下:
if(window.addEventListener){
window.addEventListener("storage",handle_storage,false);
}else if(window.attachEvent){
window.attachEvent("onstorage",handle_storage);
}
function handle_storage(e){
if(!e){e=window.event;}
//showStorage();
}
轉載于:https://www.cnblogs.com/jayruan/p/5222616.html
總結
以上是生活随笔為你收集整理的localStorage的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Oracle连接odbc数据源
- 下一篇: AseoZdpAseo.init(thi