websql存储方式一共有以下几个方法

openDatabase:这个方法使用现有的数据库或新建数据库来创建数据库对象。

transaction:这个方法允许我们执行事务处理;

executeSql:这个方法用于执行sql语句;

1.

var db = openDatabase(name,version,displayName,estimateSize,creationCallback);

name:数据库的名字;

version:数据库的版本号;

displayName:数据库的描述;

estimateSize:数据库保存数据的大小;

createCallback:回调函数:

2. 调用transaction来执行sql语句

transaction(function(tx){})

tx:回调函数所接收的参数,此参数为transaction对象的引用。

3. 调用executeSql 方法来表示处理事务

transaction.executeSql(sql,[],dataHandler,errorHandler);

sql:要执行的sql语句;

[ ]:sql语句中的占位符“?”所对应的参数。

dataHandler:执行sql语句成功时调用的回调函数:

errorHandler:执行sql语句失败时调用的回调函数。

先贴代码

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>webSQL</title>
<script src="jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
//初始化数据库
function initDatabase(){
var db =getCurrentDB();
if(!db){
alert('您的浏览器不支持HTML本地数据库');
return ;
}
db.transaction(function(trans){
trans.executeSql('create table if not exists Demo(uName text null,title text null,words text null)',[],function(trans,result){},
function(trans,message){ });
})
}
//创建数据库
function getCurrentDB(){
var db = openDatabase('data.db','1.0','demo data',1024*1024);
return db;
}
$(function(){
//初始化数据库
initDatabase();
$("#save").on('click',function(){
var txtName = $('#userName').val();
var txtTitle= $('#userTitle').val();
var txtWords = $('#userContent').val();
//执行sql脚本来插入数据
var db = getCurrentDB();
db.transaction(function(trans){
trans.executeSql('insert into Demo(uName,title,words)values(?,?,?)',[txtName,txtTitle,txtWords],function(ts,data){},function(ts,message){
alert(message);
})
})
}) //将数据展示到表格中
$("#showContent").on('click',function(){
showAllTheData();
}); //显示所有数据库中的数据到页面中
function showAllTheData(){
$('#showTable').empty();
var db =getCurrentDB();
db.transaction(function(trans){
trans.executeSql('select * from Demo',[],function(ts,data){
if(data){
//循环记录中的数据
for(var i=0;i<data.rows.length;i++){
//获取每一行数据的json对象(键值对组成),将数据拼接成表格中的一行行数据
appendDataToTable(data.rows.item(i));
}
}
},function(ts,message){
alert(message);
})
})
}
function appendDataToTable(data){
var txtName =data.uName;
var txtTitle =data.title;
var txtWords =data.words;
var strHTML ='';
strHTML+='<tr>';
strHTML += "<td>"+txtName+"</td>";
strHTML += "<td>"+txtTitle+"</td>";
strHTML += "<td>"+txtWords+"</td>";
strHTML+='</tr>';
$("#showTable").append(strHTML);
}
})
</script>
</head>
<body>
<table>
<tr>
<td>用户名:</td>
<td><input type="text" id="userName"/></td>
</tr>
<tr>
<td>标题:</td>
<td><input type="text" id="userTitle"/></td>
</tr>
<tr>
<td>留言:</td>
<td><input type="text" id="userContent"/></td>
</tr>
</table>
<input type="button" id="save" value="保存" />
<input type="button" id="showContent" value="展示你的信息"/>
<table id ='showTable'> </table>
</body>
</html>

.

  

webSQL 实现即时通讯的更多相关文章

  1. 利用WCF双工模式实现即时通讯

    概述 WCF陆陆续续也用过多次,但每次都是浅尝辄止,以将够解决问题为王道,这几天稍闲,特寻了些资料看,昨晚尝试使用WCF的双工模式实现了一个简单的即时通讯程序,通过服务端转发实现客户端之间的通讯.这只 ...

  2. android环境下的即时通讯

    首先了解一下即时通信的概念.通过消息通道 传输消息对象,一个账号发往另外一账号,只要账号在线,可以即时获取到消息,这就是最简单的即使通讯.消息通道可由TCP/IP UDP实现.通俗讲就是把一个人要发送 ...

  3. 【原创】轻量级即时通讯技术MobileIMSDK:Android客户端开发指南

    申明:MobileIMSDK 目前为个人维护的原创开源工程,现陆续整理了一些资料,希望对需要的人有用.如需与作者交流,见文章底签名处,互相学习. MobileIMSDK开源工程的代码托管地址请进入 G ...

  4. 【原创】轻量级移动设备即时通讯技术MobileIMSDK的常见问题解答

    申明:MobileIMSDK 目前为个人原创开源工程且已发布,现整理了一些有关MobileIMSDK的常见的问题,希望对需要的人有用,谢谢.如需与作者交流,见文章底部个人签名处,互相学习. Mobil ...

  5. 【原创】轻量级移动端即时通讯技术 MobileIMSDK 发布了

    申明:MobileIMSDK目前为个人原创开源工程,投入了大量的时间和精力,希望对需要的人有所帮助.如需与作者交流,见文章底部个人签名处,互相学习.Q群:215891622,欢迎共同志趣者学习和交流. ...

  6. ActiveMQ 即时通讯服务 浅析

      一. 概述与介绍 ActiveMQ 是Apache出品,最流行的.功能强大的即时通讯和集成模式的开源服务器.ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provi ...

  7. APP邂逅即时通讯云,让你的手机APP聊起来

     #推荐活动# #线下沙龙# 明天下午在IC咖啡 —— <APP邂逅即时通讯云,让你的手机APP聊起来>, http://url.cn/Y8sYo5 

  8. 岁末年初3Q大战惊现高潮,360震撼推出Android "3Q" IM即时通讯

    岁末年初3Q大战惊现高潮,360震撼推出Android "3Q" IM即时通讯 看过了QQ和360斗争的开端高潮,当然现在还不能说这场斗争已经结束,在我看来这次的事件未尝不是一个适 ...

  9. Web端即时通讯技术盘点:短轮询、Comet、Websocket、SSE

    1. 前言 Web端即时通讯技术因受限于浏览器的设计限制,一直以来实现起来并不容易,主流的Web端即时通讯方案大致有4种:传统Ajax短轮询.Comet技术.WebSocket技术.SSE(Serve ...

随机推荐

  1. 洛谷——P2952 [USACO09OPEN]牛线Cow Line

    P2952 [USACO09OPEN]牛线Cow Line 题目描述 Farmer John's N cows (conveniently numbered 1..N) are forming a l ...

  2. Python开发基础-Day12模块1

    time模块 在Python中,通常有这三种方式来表示时间:时间戳.元组(struct_time).格式化的时间字符串: (1)时间戳(timestamp) :通常来说,时间戳表示的是从1970年1月 ...

  3. CSS 笔记——文本字体

    5. 文本字体 -> 文本 (1)text-indent 基本语法 text-indent : length 语法取值 length : 百分比数字 | 由浮点数字和单位标识符组成的长度值,允许 ...

  4. [Codeforces #210] Tutorial

    Link: Codeforces #210 传送门 A: 贪心,对每个值都取最大值,不会有其他解使答案变优 #include <bits/stdc++.h> using namespace ...

  5. hdu 4489 The King’s Ups and Downs(基础dp)

    The King’s Ups and Downs Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java ...

  6. BZOJ 1707 [Usaco2007 Nov]tanning分配防晒霜(扫描线+贪心+优先队列)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1707 [题目大意] 每个奶牛各自能够忍受的阳光强度有一个最小值和一个最大值 防晒霜的作 ...

  7. 【扫描线】Gym - 101190E - Expect to Wait

    假设初始人数为0, 将每个时刻在等待的人数写下来,就是求个和. 如果纵坐标看成人数,横坐标看成时间,就是求个面积. 因为初始人数不一定为零,所以离线后扫描线即可回答所有询问. #include< ...

  8. android:scrollbarStyle属性及滚动条和分割线覆盖问题

    android:scrollbarStyle可以定义滚动条的样式和位置,可选值有insideOverlay.insideInset.outsideOverlay.outsideInset四种. 其中i ...

  9. JVM命令-java服务器故障排查

    一.top(Linux命令) 执行top命令:    (查看进程15477的详细情况,下文用到) 系统信息(前五行): 第1行:Top 任务队列信息(系统运行状态及平均负载),与uptime命令结果相 ...

  10. 解决eclipse中java代码注释变成乱码的问题

    Eclipse JAVA文件注释乱码将别人的项目或JAVA文件导入到自己的Eclipse中时,常常会出现JAVA文件的中文注释变成乱码的情况,主要原因就是别人的IDE编码格式和自己的Eclipse编码 ...