HTML5本地存储之Database Storage应用介绍_html5教程技巧
程序员文章站
2022-03-31 08:05:44
...
在上一篇《HTML5本地存储之Web Storage篇》中,简单介绍了如何利用localStorage实现本地存储;实际上,除了sessionStorage和localStorage外,HTML5还支持通过本地数据库进行本地数据存储,HTML5采用的是"SQLLite"这种文件型数据库,该数据库多集中在嵌入式设备上,熟悉IOS/Android开发的同学,应该对SQLLite数据库比较熟悉。
HTML5中的数据库操作比较简单,主要有如下两个函数:
1、通过openDatabase方法创建一个访问数据库的对象
var db = openDatabase(databasename,version,description,size)
该方法有四个参数,作用分别为:
databasename:数据库名;
version:数据库版本号,可不填;
description:数据库描述;
size:给数据库分配的空间大小;
2、使用第一步创建的数据库访问对象(如db)执行transaction方法,用来执行事务处理
db.transaction(function(tx)){
//执行访问数据库的语句
});
transaction方法使用一个回调函数作为参数,在这个函数中,执行访问数据库的具体操作;
3、通过executeSql方法执行查询
tx.executeSql(sqlQuery,[value1,value2..],dataHandler,errorHandler)
executeSql方法有四个参数,作用分别如下:
sqlQuery:需要具体执行的sql语句,可以是create、select、update、delete;
[value1,value2..]:sql语句中所有使用到的参数的数组,在executeSql方法中,将sql语句中所要使用的参数先用“?”代替,然后依次将这些参数组成数组放在第二个参数中;
dataHandler:执行成功是调用的回调函数,通过该函数可以获得查询结果集;
errorHandler:执行失败时调用的回调函数;
本文通过HTML5的数据库支持,重新实现一遍上篇文章中的通讯录管理,待实现功能如下:
可创建联系人并保存到数据库中,联系人字段包括:姓名、手机号码、公司、创建时间;
列出当前已保存的所有联系人信息;
可删除特定联系人信息;
同样,先准备一个HTML页面,如下:
HTML5本地存储之本地数据库篇
界面展现如下:
要实现创建新联系人并存入数据库功能,需要如下简单的JS代码:
//打开数据库
var db = openDatabase('contactdb','','local database demo',204800);
//保存数据
function save(){
var user_name = document.getElementById("user_name").value;
var mobilephone = document.getElementById("mobilephone").value;
var company = document.getElementById("company").value;
//创建时间
var time = new Date().getTime();
db.transaction(function(tx){
tx.executeSql('insert into contact values(?,?,?,?)',[user_name,mobilephone,company,time],onSuccess,onError);
});
}
//sql语句执行成功后执行的回调函数
function onSuccess(tx,rs){
alert("操作成功");
loadAll();
}
//sql语句执行失败后执行的回调函数
function onError(tx,error){
alert("操作失败,失败信息:"+ error.message);
}
要展现当前所有已保存的联系人列表,可通过如下JS代码实现:
//将所有存储在sqlLite数据库中的联系人全部取出来
function loadAll(){
var list = document.getElementById("list");
db.transaction(function(tx){
//如果数据表不存在,则创建数据表
tx.executeSql('create table if not exists contact(name text,phone text,company text,createtime INTEGER)',[]);
//查询所有联系人记录
tx.executeSql('select * from contact',[],function(tx,rs){
if(rs.rows.length>0){
var result = "";
HTML5中的数据库操作比较简单,主要有如下两个函数:
1、通过openDatabase方法创建一个访问数据库的对象
复制代码
代码如下:var db = openDatabase(databasename,version,description,size)
该方法有四个参数,作用分别为:
databasename:数据库名;
version:数据库版本号,可不填;
description:数据库描述;
size:给数据库分配的空间大小;
2、使用第一步创建的数据库访问对象(如db)执行transaction方法,用来执行事务处理
复制代码
代码如下:db.transaction(function(tx)){
//执行访问数据库的语句
});
transaction方法使用一个回调函数作为参数,在这个函数中,执行访问数据库的具体操作;
3、通过executeSql方法执行查询
复制代码
代码如下:tx.executeSql(sqlQuery,[value1,value2..],dataHandler,errorHandler)
executeSql方法有四个参数,作用分别如下:
sqlQuery:需要具体执行的sql语句,可以是create、select、update、delete;
[value1,value2..]:sql语句中所有使用到的参数的数组,在executeSql方法中,将sql语句中所要使用的参数先用“?”代替,然后依次将这些参数组成数组放在第二个参数中;
dataHandler:执行成功是调用的回调函数,通过该函数可以获得查询结果集;
errorHandler:执行失败时调用的回调函数;
本文通过HTML5的数据库支持,重新实现一遍上篇文章中的通讯录管理,待实现功能如下:
可创建联系人并保存到数据库中,联系人字段包括:姓名、手机号码、公司、创建时间;
列出当前已保存的所有联系人信息;
可删除特定联系人信息;
同样,先准备一个HTML页面,如下:
复制代码
代码如下:界面展现如下:
要实现创建新联系人并存入数据库功能,需要如下简单的JS代码:
复制代码
代码如下://打开数据库
var db = openDatabase('contactdb','','local database demo',204800);
//保存数据
function save(){
var user_name = document.getElementById("user_name").value;
var mobilephone = document.getElementById("mobilephone").value;
var company = document.getElementById("company").value;
//创建时间
var time = new Date().getTime();
db.transaction(function(tx){
tx.executeSql('insert into contact values(?,?,?,?)',[user_name,mobilephone,company,time],onSuccess,onError);
});
}
//sql语句执行成功后执行的回调函数
function onSuccess(tx,rs){
alert("操作成功");
loadAll();
}
//sql语句执行失败后执行的回调函数
function onError(tx,error){
alert("操作失败,失败信息:"+ error.message);
}
要展现当前所有已保存的联系人列表,可通过如下JS代码实现:
复制代码
代码如下://将所有存储在sqlLite数据库中的联系人全部取出来
function loadAll(){
var list = document.getElementById("list");
db.transaction(function(tx){
//如果数据表不存在,则创建数据表
tx.executeSql('create table if not exists contact(name text,phone text,company text,createtime INTEGER)',[]);
//查询所有联系人记录
tx.executeSql('select * from contact',[],function(tx,rs){
if(rs.rows.length>0){
var result = "
序号 | 姓名 | 手机 | 公司 | 添加时间 | 操作 |
---|---|---|---|---|---|
"+(i+1)+" | "+row.name+" | "+row.phone+" | "+row.company+" | "+timeStr+" |
上一篇: php gvim中文乱码分析解决方法
下一篇:
认识 标签之间的区别
与
推荐阅读
-
HTML5之SVG 2D入门11—用户交互性(动画)介绍及应用_html5教程技巧
-
HTML5之SVG 2D入门11—用户交互性(动画)介绍及应用_html5教程技巧
-
突袭HTML5之Javascript API扩展3—本地存储全新体验_html5教程技巧
-
HTML5之SVG 2D入门9—蒙板及mask元素介绍与应用_html5教程技巧
-
HTML5 本地存储之如果没有数据库究竟会怎样_html5教程技巧
-
突袭HTML5之Javascript API扩展3—本地存储全新体验_html5教程技巧
-
HTML5本地存储之Web Storage应用介绍_html5教程技巧
-
HTML5之SVG 2D入门9—蒙板及mask元素介绍与应用_html5教程技巧
-
HTML5 Web存储方式的localStorage和sessionStorage进行数据本地存储案例应用_html5教程技巧
-
HTML5本地存储之Web Storage应用介绍_html5教程技巧
网友评论
文明上网理性发言,请遵守 新闻评论服务协议
我要评论