webSQL 实现即时通讯
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 实现即时通讯的更多相关文章
- 利用WCF双工模式实现即时通讯
概述 WCF陆陆续续也用过多次,但每次都是浅尝辄止,以将够解决问题为王道,这几天稍闲,特寻了些资料看,昨晚尝试使用WCF的双工模式实现了一个简单的即时通讯程序,通过服务端转发实现客户端之间的通讯.这只 ...
- android环境下的即时通讯
首先了解一下即时通信的概念.通过消息通道 传输消息对象,一个账号发往另外一账号,只要账号在线,可以即时获取到消息,这就是最简单的即使通讯.消息通道可由TCP/IP UDP实现.通俗讲就是把一个人要发送 ...
- 【原创】轻量级即时通讯技术MobileIMSDK:Android客户端开发指南
申明:MobileIMSDK 目前为个人维护的原创开源工程,现陆续整理了一些资料,希望对需要的人有用.如需与作者交流,见文章底签名处,互相学习. MobileIMSDK开源工程的代码托管地址请进入 G ...
- 【原创】轻量级移动设备即时通讯技术MobileIMSDK的常见问题解答
申明:MobileIMSDK 目前为个人原创开源工程且已发布,现整理了一些有关MobileIMSDK的常见的问题,希望对需要的人有用,谢谢.如需与作者交流,见文章底部个人签名处,互相学习. Mobil ...
- 【原创】轻量级移动端即时通讯技术 MobileIMSDK 发布了
申明:MobileIMSDK目前为个人原创开源工程,投入了大量的时间和精力,希望对需要的人有所帮助.如需与作者交流,见文章底部个人签名处,互相学习.Q群:215891622,欢迎共同志趣者学习和交流. ...
- ActiveMQ 即时通讯服务 浅析
一. 概述与介绍 ActiveMQ 是Apache出品,最流行的.功能强大的即时通讯和集成模式的开源服务器.ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provi ...
- APP邂逅即时通讯云,让你的手机APP聊起来
#推荐活动# #线下沙龙# 明天下午在IC咖啡 —— <APP邂逅即时通讯云,让你的手机APP聊起来>, http://url.cn/Y8sYo5
- 岁末年初3Q大战惊现高潮,360震撼推出Android "3Q" IM即时通讯
岁末年初3Q大战惊现高潮,360震撼推出Android "3Q" IM即时通讯 看过了QQ和360斗争的开端高潮,当然现在还不能说这场斗争已经结束,在我看来这次的事件未尝不是一个适 ...
- Web端即时通讯技术盘点:短轮询、Comet、Websocket、SSE
1. 前言 Web端即时通讯技术因受限于浏览器的设计限制,一直以来实现起来并不容易,主流的Web端即时通讯方案大致有4种:传统Ajax短轮询.Comet技术.WebSocket技术.SSE(Serve ...
随机推荐
- gwy常识
其实公务员考试是一门艺术,七分靠水平,三分凭发挥,充分而又细致的准备则是取得优秀成绩的前提.考生若想在笔试中成功上岸,还需苦练内功,凭技巧和真才实学在考场上一较高下.那么针对历年上海公务员考试笔试考情 ...
- Python 头文件和常用函数
#coding=utf-8 """ @version: ?? @author: Donny @Mail: wdm666666@gmail.com @license: La ...
- JavaWeb数据库配置
项目结构 在 JDBC 中 DBUtil.java 加载配置文件时,路径使用的是Java项目的相对路径.存在本地的. // 加载配置文件 Properties p = new Properties() ...
- [Arc062] Painting Graphs with AtCoDeer
[Arc062] Painting Graphs with AtCoDeer Description 给定一张N点M边的无向图,每条边要染一个编号在1到K的颜色.你可以对一张染色了的图进行若干次操作, ...
- 【动态规划】POJ3280- Cheapest Palindrome
[题目大意] 给出一个字符串,可以删除或添加一些字符,它们各自会消耗价值.问最少消耗多少价值,可以使得字符串变成回文的. [思路] 事实上删除或添加字符的价值只需要保持较小的那一个.假设当前要将(j, ...
- 【动态规划】mr354-坐车看球
[题目大意] 两个球队的支持者要一起坐车去看球,他们已经排成了一列.我们要让他们分乘若干辆巴士,同一辆巴士上的人必须在队伍中是连续的.为了在车上不起冲突,希望两队的支持者人数尽量相等,差至多是D.有一 ...
- 20162312 2016-2017-2《Java程序设计》课程总结
一.每周作业链接汇总 预备作业01 写的是有关老师和学生的关系: 预备作业02 如何做中学: 预备作业03 实验楼学习linux环境: 第一周作业 java入门,虚拟机等课前准备: 第二周作业 掌握J ...
- php中文件上传需要注意的几点
1.首先要开启php.ini中的文件上传,打开php.ini 配置文件,查找 File Uploads ,在这个区域有以下3个选项: ;;;;;;;;;;;;;;;; ; File Uploads ; ...
- winform 中设置窗体的默认焦点
转载:http://www.cnblogs.com/weekzero/p/3504513.html winform的窗体中,有时候需要设置默认焦点,有时候需要取消默认焦点. 设置默认焦点,最简单的方法 ...
- ARM的存储器映射与存储器重映射
转:http://www.360doc.com/content/12/1006/00/1299815_239693009.shtml arm 处理器本身所产生的地址为虚拟地址,每一个arm芯片内都有存 ...