web sql database 是html5废弃的一个新特性,它提供了基本的关系数据库功能,使用 `SQL` 来操纵客户端数据库的 API,这些 API 是异步的,规范中使用的方言是SQLlite

主要核心api有3个

  1. openDatabase:这个方法使用现有数据库或新建数据库来创建数据库对象
Database openDatabase(in DOMString name, 
in DOMString version,
in DOMString displayName,
in unsigned long estimatedSize,
in optional DatabaseCallback creationCallback);

  name:数据库名。
  version:数据库版本。
  displayName:显示名称。
  estimatedSize:数据库预估长度(以字节为单位)。
  creationCallback:回调函数。(非必须)

  2. transaction:这个方法允许我们根据情况控制事务提交或回滚

 void transaction(in SQLTransactionCallback callback,
in optional SQLTransactionErrorCallback errorCallback,
in optional SQLVoidCallback successCallback);

  callback:事务回调函数,其中可以执行 SQL 语句。
  errorCallback:出错回调函数。(非必须)
  successCallback:执行成功回调函数。(非必须)

     3. executeSql:这个方法用于执行SQL 查询

void executeSql(in DOMString sqlStatement,
in optional ObjectArray arguments,
in optional SQLStatementCallback callback,
in optional SQLStatementErrorCallback errorCallback);

  sqlStatement:SQL 语句。
  arguments:SQL 语句需要的参数(?)数组。(非必须)
  callback:回调函数。(非必须)
  errorCallback:出错回调函数。(非必须)

完整栗子

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>html5 web sql database应用</title>
</head>
<body>
<input type="button" value="创建表" onclick="createTable()"/>
<input type="button" value="存值" onclick="save()"/>
<input type="button" value="取值" onclick="queryData();" />
<input type="button" value="删除" onclick="del(1);" />
<table id="datatable" border="1">
<thead>
<tr>
<td>id</td>
<td>text</td>
</tr>
</thead>
<tbody></tbody>
</table>
<script> var db = createDB(); function createDB(){
return openDatabase('textDB', '1.0', 'text DB', 2 * 1024);
} function createTable(){
db.transaction(function(tx){
tx.executeSql('CREATE TABLE IF NOT EXISTS textTable (id unique, text)');
});
} function insetData( id ){
db.transaction(function (tx) {
tx.executeSql('INSERT INTO textTable (id, text) VALUES ('+id+', "内容'+id+'")');
});
} function save(){
for(var i = 0 ; i < 10 ; i++){
insetData( i );
}
} function del(id){
db.transaction(function (tx) {
if(id){
tx.executeSql('DELETE FROM textTable WHERE id = ? ', [id]);
}else{
tx.executeSql('DELETE FROM textTable');
}
});
} function queryData(){
var tbody = document.getElementById('datatable').getElementsByTagName('tbody')[0];
empty(tbody, 'tr');
db.transaction(function (tx) {
tx.executeSql('SELECT * FROM textTable',[],function (context, results){
// console.dir(results);
var rows = results.rows, len = rows.length, i, tr,id,text;
for(i = 0 ; i < len; i++){
// console.dir(rows.item(i));
id = document.createElement('td');
id.innerHTML = rows.item(i).id;
text = document.createElement('td');
text.innerHTML = rows.item(i).text; tr = document.createElement('tr');
tr.appendChild(id);
tr.appendChild(text); tbody.appendChild(tr);
}
// 释放内存
tr = null, id = null, text = null, tbody = null;
});
});
} function empty(parent, childrenName){
var childrendom = parent.getElementsByTagName(childrenName);
var o = childrendom[0];
while( o != null ){
console.log(o)
parent.removeChild(o);
o = childrendom[0];
}
}
</script>
</body>
</html>

使用chrome的同学可以按下F12

chrome真的很强大把storage、cookies、app cache、web sql、index db等都列出来了

web离线应用 Web SQL Database的更多相关文章

  1. HTML5教程之html 5 本地数据库(Web Sql Database)

    HTML5的Web SQL Databases(html5 本地数据库)的确很诱惑人,当你发现可以用与mysql查询一样的查询语句来操作本地数据库时,你会发现这东西挺有趣的.今天,我们一起来了解HTM ...

  2. HTML5本地存储——Web SQL Database

    在HTML5 WebStorage介绍了html5本地存储的Local Storage和Session Storage,这两个是以键值对存储的解决方案,存储少量数据结构很有用,但是对于大量结构化数据就 ...

  3. HTML5 学习笔记(三)——本地存储(LocalStorage、SessionStorage、Web SQL Database)

    一.HTML4客户端存储 B/S架构的应用大量的信息存储在服务器端,客户端通过请求响应的方式从服务器获得数据,这样集中存储也会给服务器带来相应的压力,有些数据可以直接存储在客户端,传统的Web技术中会 ...

  4. web sql database数据存储位置

    Q1: 数据存储在哪儿? Web Storage / Web SQL Database / Indexed Database 的数据都存储在浏览器对应的用户配置文件目录(user profile di ...

  5. 阿伦学习html5 之Web SQL Database

    不知道什么情况, W3C不再维护web SQL Database规范,但是大多浏览器都支持了! Web SQL Database规范页面有着这样的声明 Web SQL Database 规范中定义的三 ...

  6. 【HTML5】HTML5本地数据库(Web Sql Database)

    Web Sql数据库简介 Web SQL数据库API实际上不是HTML5规范的组成部分,而是单独的规范.它通过一套API来操纵客户端的数据库. Web SQL数据库的浏览器支持情况 Web SQL 数 ...

  7. [转]HTML5本地存储——Web SQL Database

    在HTML5 WebStorage介绍了html5本地存储的Local Storage和Session Storage,这两个是以键值对存储的解决方案,存储少量数据结构很有用,但是对于大量结构化数据就 ...

  8. Web SQL Database实例

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. (转)HTML5开发学习(3):本地存储之Web Sql Database

    原文:http://www.cnblogs.com/xumingxiang/archive/2012/03/25/2416386.html HTML5开发学习(3):本地存储之Web Sql Data ...

随机推荐

  1. PHP连接mysql数据库进行增删改查--删除

    删除: 1.首页 在foreach里面加入   <td><a href='dele.php?id={$i[0]}'>删除</a></td> 在上面< ...

  2. 转:C++学习之Pair

    Pair类型概述 pair是一种模板类型,其中包含两个数据值,两个数据的类型可以不同,基本的定义如下: pair<int, string> a; 表示a中有两个类型,第一个元素是int型的 ...

  3. 高性能 Java 缓存库 — Caffeine

    http://www.baeldung.com/java-caching-caffeine 作者:baeldung 译者:oopsguy.com 1.介绍 在本文中,我们来看看 Caffeine - ...

  4. Java基础-运算符(03)

    概念: 运算符:就是对于常量和变量进行操作的符号. 表达式:用运算符连接起来的符合java语法的式子,不同的运算符连接的表达式是不同类型的表达式. 运算符分类: 算数运算符(+  -  *  /  % ...

  5. Robot Framework自动化测试框架初探

    Robot Framework是一款python语言编写,通用的功能自动化测试框架.它使用了比较易用的表格数据语法,基于关键字驱动测试,主要用来验收测试和验收测试驱动开发(ATDD). 本文主要介绍R ...

  6. Ubuntu上64位adv无法创建问题

    Ubuntu上安装android开发环境,前面都成功了,但到了最后创建adv的时候却总是失败. 出现了这个问题.最后,上网找了这个教程http://blog.sina.com.cn/s/blog_66 ...

  7. HTML的语法

    1,什么是HTML标记语言,他是表示网页信息的符号标记语言,特点包括: a,可以设置文本的格式,比如标题,文号,文本颜色,段落等待 b,可以简历列表 c,可以插入图像和媒体 d,可以建立表格 e,超连 ...

  8. Hive安装和部署

    在root的用户下搭建的 构建hive之前必须要先搭建好hadoop才可以. hive定义了一种类似SQL查询语言--HQL 类似SQL ,但是不完全相同 Hive是一个数据仓库,它部署在Hadoop ...

  9. Android 开发笔记___图像视图

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...

  10. 事件 event

    添加移除函数(removeEventListener)时三个参数保持一致,否则会失败,而且不会有错误提示 var btn = document.getElementById(“myBtn”); btn ...