web离线应用 Web SQL Database
web sql database 是html5废弃的一个新特性,它提供了基本的关系数据库功能,使用 `SQL` 来操纵客户端数据库的 API,这些 API 是异步的,规范中使用的方言是SQLlite
主要核心api有3个
- 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的更多相关文章
- HTML5教程之html 5 本地数据库(Web Sql Database)
HTML5的Web SQL Databases(html5 本地数据库)的确很诱惑人,当你发现可以用与mysql查询一样的查询语句来操作本地数据库时,你会发现这东西挺有趣的.今天,我们一起来了解HTM ...
- HTML5本地存储——Web SQL Database
在HTML5 WebStorage介绍了html5本地存储的Local Storage和Session Storage,这两个是以键值对存储的解决方案,存储少量数据结构很有用,但是对于大量结构化数据就 ...
- HTML5 学习笔记(三)——本地存储(LocalStorage、SessionStorage、Web SQL Database)
一.HTML4客户端存储 B/S架构的应用大量的信息存储在服务器端,客户端通过请求响应的方式从服务器获得数据,这样集中存储也会给服务器带来相应的压力,有些数据可以直接存储在客户端,传统的Web技术中会 ...
- web sql database数据存储位置
Q1: 数据存储在哪儿? Web Storage / Web SQL Database / Indexed Database 的数据都存储在浏览器对应的用户配置文件目录(user profile di ...
- 阿伦学习html5 之Web SQL Database
不知道什么情况, W3C不再维护web SQL Database规范,但是大多浏览器都支持了! Web SQL Database规范页面有着这样的声明 Web SQL Database 规范中定义的三 ...
- 【HTML5】HTML5本地数据库(Web Sql Database)
Web Sql数据库简介 Web SQL数据库API实际上不是HTML5规范的组成部分,而是单独的规范.它通过一套API来操纵客户端的数据库. Web SQL数据库的浏览器支持情况 Web SQL 数 ...
- [转]HTML5本地存储——Web SQL Database
在HTML5 WebStorage介绍了html5本地存储的Local Storage和Session Storage,这两个是以键值对存储的解决方案,存储少量数据结构很有用,但是对于大量结构化数据就 ...
- Web SQL Database实例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- (转)HTML5开发学习(3):本地存储之Web Sql Database
原文:http://www.cnblogs.com/xumingxiang/archive/2012/03/25/2416386.html HTML5开发学习(3):本地存储之Web Sql Data ...
随机推荐
- [置顶]
win10 uwp 参考
态度随意申请专栏,没想到通过 看了我的博客,都是在别的大神博客看到,然后修改他们的 我看到的大神博客 东邪独孤 http://www.cnblogs.com/tcjiaan/ 老周,买了他的<W ...
- 关于scanf 与 cin gets(),getline()......输入输出字符串的区别
很对人对于字符串的输入输出一直是比较模糊的,今天总结一下几个常用的输入流符号对于输入字符串时的区别: 1.scanf(),首先 它遇到空格或回车键(\n)就会结束,并且会将回车符算入字符串中: 2.c ...
- Ubuntu安装Flash视频插件
http://www.linuxidc.com/Linux/2014-05/101095.htm
- 博客收藏--sailing的博客
http://blog.sina.com.cn/sailingxr free:这个博客主页的内容不错 PC的足迹 arm与x86 浅谈PCIe体系架构 浅谈cache memory
- 白夜追凶 :手 Q 图片的显示和发送逻辑
欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 作者:陈舜尧 导语: "这张图片在快捷发图栏背景是黑色的,为啥发到AIO(会话窗口)里背景就变成白的了?" 通过一个bug ...
- LeetCode 575. Distribute Candies (发糖果)
Given an integer array with even length, where different numbers in this array represent different k ...
- java swing中Timer类的学习
最近在完成学校课程的java平时作业,要实现一个计时器,包含开始.暂停以及重置三个功能.由于老师规定要用这个timer类,也就去学习了一下,顺便记录一下. 首先呢去查了一下java手册上的东西,发现t ...
- 4天精通arcgis
真是掉进了一个史无前例的坑 --ArcGIS产品线为用户提供一个可伸缩的,全面的GIS平台. 这是百科的介绍,简单来讲,这就是一个地图,可以搞事情. 学的是ArcGIS API for JavaScr ...
- hadoop2的mapreduce操作hbase数据
1.从hbase中取数据,再把计算结果插入hbase中 package com.yeliang; import java.io.IOException; import org.apache.hadoo ...
- pyinstaller生成exe文件失败
我的python是3.6,目前pyinstaller并不支持,有网友建议在Github上下载源码,用pyinstaller_develop文件夹替换pyinstaller安装位置下同名文件夹.这样做之 ...