Html5——本地数据库
来源:互联网 发布:宁有种乎读音 编辑:程序博客网 时间:2024/05/02 02:31
本地存储
- sessionStorage
- localStorage
sessionStorage.setItem(‘key’,’value’)
变量=sessionStorage.getItem(‘key’,’value’)
或者
sessionStorage.key=’value’
变量=sessionStorage.key
localStorage.setItem(‘key’,’value’)
localStorage.getItem(‘key’,’value’)
或者
localStorage.key=’value’
变量=localStorage.key
简单示例
localstorage.html
storage.js
本地数据库
本地数据库是H5之后出现的SQLLite数据库,可以通过SQL语言来访问文件型SQL数据库
使用数据库的步骤:
1 创建访问数据库
2 使用事务处理
创建访问数据库对象
var db= openDatabase(‘mydb’,’1.0’,’TestDB’,2*1024*1024)
第一个参数:数据库名
第二个参数:版本号
第三个参数:数据库描述
第四个参数:数据库大小
该方法返回创建后的数据库访问对象,如果该数据库不存在,则创建数据库
用executeSql执行查询
transaction.executeSql(sqlquery,[],dataHandler,errorHandler);
第一个参数:查询语句
第二个参数:查询语句中的?
eg: transaction.executeSql(“UPDATE people set age=? which name=?”,[age,name])
第三个参数:执行成功时调用的回调函数
function dataHandler(transaction,result){//回调函数内容}
第四个参数:执行失败时调用的回调函数
function errorHandler(transaction,erromsg){//alert(“执行出错!”)}
transaction
‘
//查询数据表中的数据 this.db.transaction(function(tx){ //创建数据表,如果不存在MsgData就创建,不然就不创建 tx.executeSql('CREATE TABLE IF NOT EXISTS MsgData(name TEXT, message TEXT,time INTEGER) ',[]); //查询数据表中的数据,rs是返回的数据,tx是事务 tx.executeSql('SELECT *FROM MsgData',[],function(tx,rs){ note.removeAllData();//用this.removeAllData()不行 console.log(rs); for(var i=0;i<rs.rows.length;i++){ note.showData(rs.rows[i]); } }); });
‘
//向数据表中插入一条数据 this.db.transaction(function(tx){ tx.executeSql('INSERT INTO MsgData VALUES(?,?,?)',[name,message,time],function(tx,ts) { alert("成功保存数据!"); }, function (tx,error) { alert(error.sourse+':'+error.message); }); });
示例——利用本地数据库实现留言本
利用本地数据库实现留言本
html文件
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title>使用数据库实现Web留言本</title></head><body onload="note.init()"><h1>使用数据库实现Web留言本</h1><table> <tr> <td>姓名:</td> <td> <input type="text" id="name"> </td> </tr> <tr> <td>留言:</td> <td> <textarea id="memo" cols="30" rows="10"></textarea> </td></tr> <tr> <td> <input type="button" value="保存" onclick="note.saveData()"></textarea> </td> </tr></table><hr/><table id="datatable" border="1"></table></body><script src="sql_note.js"></script></html>
js文件
/** * Created by Administrator on 2016/5/10. */var note= { datatable:null, db:openDatabase('MyData','','My DataBase',102400), init:function(){ datatable=document.getElementById('datatable'); this.showAllData(); }, removeAllData:function(){ for(var i=datatable.childNodes.length-1;i>=0;i--){ datatable.removeChild(datatable.childNodes[i]); } var tr=document.createElement('tr'); var th1=document.createElement('th'); var th2=document.createElement('th'); var th3=document.createElement('th'); th1.innerHTML='姓名'; th2.innerHTML='留言'; th3.innerHTML='时间'; tr.appendChild(th1); tr.appendChild(th2); tr.appendChild(th3); datatable.appendChild(tr); }, showData:function(row){ var tr = document.createElement('tr'); var td1=document.createElement('td'); td1.innerHTML=row.name; var td2=document.createElement('td'); td2.innerHTML=row.message; var td3=document.createElement('td'); var t=new Date(); t.setTime(row.time); td3.innerHTML= t.toLocaleDateString()+""+ t.toLocaleTimeString(); tr.appendChild(td1); tr.appendChild(td2); tr.appendChild(td3); datatable.appendChild(tr); }, showAllData:function(){ this.db.transaction(function(tx){ tx.executeSql('CREATE TABLE IF NOT EXISTS MsgData(name TEXT, message TEXT,time INTEGER) ',[]); tx.executeSql('SELECT *FROM MsgData',[],function(tx,rs){ note.removeAllData();//用this.removeAllData()不行 console.log(rs); for(var i=0;i<rs.rows.length;i++){ note.showData(rs.rows[i]); } }); }); }, addData:function(name,message,time){ this.db.transaction(function(tx){ tx.executeSql('INSERT INTO MsgData VALUES(?,?,?)',[name,message,time],function(tx,ts) { alert("成功保存数据!"); }, function (tx,error) { alert(error.sourse+':'+error.message); }); }); }, saveData:function(){ var name=document.getElementById('name').value; var memo=document.getElementById('memo').value; var time=new Date().getTime(); this.addData(name,memo,time); this.showAllData(); }};
实现效果如图:
indexedDB数据库
详见我的另一篇博文http://blog.csdn.net/sinat_25127047/article/details/51381260
- Html5——本地数据库
- HTML5创建本地数据库
- html5本地数据库示例
- html5本地数据库操作
- HTML5本地数据库(WebSQL)
- HTML5本地数据库(二)
- HTML5 本地数据库
- HTML5本地数据库详解
- HTML5本地数据库详解
- HTML5本地数据库
- html5本地数据库
- HTML5 本地数据库
- html5操作本地数据库
- HTML5 本地数据库
- (九)HTML5本地存储——本地数据库SQLLite的使用
- Html5访问本地数据库sqlite
- Html5访问本地数据库sqlite
- HTML5本地数据库(一)
- SDWebImage的细节问题
- 讲一个数组内的对象属性保存到另一个数组
- myeclipse中Could not find the main class: org.apache.catalina.startup.Boostrap. Program will exit
- Js apply call方法
- 2016-05-09 随感,生活还是眼前的苟且
- Html5——本地数据库
- 错误调试与异常处理 错 误 类 型
- 获取一个按钮数组内的所有按钮的标题
- css在未知高度的情况下实现垂直居中
- 重构的小技巧
- Java 轻量级调用 FTP 上传(安卓可用)
- 更改纯文字按钮或者图片内容的对齐方式
- Asp.net中ListBox的用法!
- Jython:Java如何传值给Python