动态读取数据,实现QQ消息模式
1.使用技术,dwr实现异步数据读取数据,Dom创建html对象
2。html中给table设置ID值
<div style="width: 100%;overflow-x:auto;overflow-y:auto;" id="divide" >
<table id="t1" style="width: 99%;" cellpadding="0" cellspacing="0" border="1" bordercolor="#DAEBFC">
</table>
</div>
3.添加一行记录公用方法
name,datetime,content是列的值
state是状态,主要是为了实现鼠标放在不同的行显示不同的样式
function innserDate(name,datetime,content,state){
var tbl= document.getElementById("t1");
var tb=tbl.appendChild(document.createElement("tbody"));
var tr=tb.appendChild(document.createElement("tr"));
tr.attachEvent("onmouseout",function(){
if(state=="1"){
setStyle(tr,"background-color:#FFEEDD");
}else{
setStyle(tr,"background-color:#F3F4F3");
}
});
tr.attachEvent("onmouseover",function(){
setStyle(tr,"background-color:#DDEEFF");
});
if(state=="1"){
setStyle(tr,"background-color:#FFEEDD");
}else{
setStyle(tr,"background-color:#F3F4F3");
}
tr.setAttribute("height","30px");
var td1=tr.appendChild(document.createElement("td"));
td1.setAttribute("align","center");
td1.setAttribute("width","20%");
td1.innerText=name;
var td2=tr.appendChild(document.createElement("td"));
td2.setAttribute("align","center");
td2.setAttribute("width","32%");
td2.innerText=datetime;
var td3=tr.appendChild(document.createElement("td"));
td3.setAttribute("align","left");
td3.setAttribute("width","48%");
td3.innerText=content;
}
4.设置样式公共方法
function setStyle(element,text) {
element.setAttribute("style",text)
element.style.cssText=text
}
5.dwr设置
com.ekms.query.logic.QueryMessageDWR实现dwr方法
com.ekms.query.logic.AnswerBean:Bean对象,主要是在dwr中使用,value中是相应的AnswerBean的对象
<create creator="new" javascript="QueryMessageDWR">
<param name="class" value="com.ekms.query.logic.QueryMessageDWR" />
</create>
<convert converter="bean" match="com.ekms.query.logic.AnswerBean">
<param name="include" value="answerId,content,userName,createDate" />
</convert>
6.QueryMessageDWR:java方法
public List getMessagaes(Long queryId){
List<AnswerBean> answerBeanList = new ArrayList<AnswerBean>();
if(queryId!=null){
answerBeanList = iFactory.getAnswerDAO().getAnswerListAll(queryId);
}
return answerBeanList;
}
7.js 引用dwr
<script type='text/javascript' src='<%=webapp%>/dwr/interface/QueryMessageDWR.js'></script>
<script type='text/javascript' src='<%=webapp%>/dwr/engine.js'></script>
<script type='text/javascript' src='<%=webapp%>/dwr/util.js'></script>
8.js实现异步请求
setInterval用于设置多久一步请求一次数据库
checkUpdate是QueryMessageDWR的方法,用于查看数据是否被改变,如果改变就跟新,否则就继续请求,只到被关闭会话。
function getDateAjax(){
var questionId = document.getElementById("questionId").value;
var userId = document.getElementById("userId").value;
if(questionId!="" && userId!=""){
QueryMessageDWR.checkUpdate(replayA,questionId,userId);
}
}
var replayA = function getState(ans){
if(ans=="1"){
getdate();
}else{
setInterval("getDateAjax()",30000);
}
}
function getdate(){
var questionId = document.getElementById("questionId").value;
if(questionId==""){
return "系统提示:暂时不能用户对话";
}else{
QueryMessageDWR.getMessagaes(replay,questionId);
}
}
到此为止已经将整个设计思路列出,
分享到:
相关推荐
这个是一个简单的QQ代码,用到了jdbc技术。可以实现简单的通话功能。由于本人能力有限,目前也只能做到这些,希望看到的人可以对它做出更好的补充
本文旨在用Delphi面向对象的方法实现P2P(Peer To Peer)(类QQ)会话系统。本文可作为学习P2P通信与面向对象程序设计的用例。 一、 通信组件:采用TIdUDPServer(属于Indy Servers组件板)。 二、 通信原理::利用P2P之...
模仿的QQ可以聊天及截图,QQ的基本功能已经实现
C#使用Socket实现网络通信(winForm),不是源码!!
所以自己也可以利用Qt中的QWidget创建一个提示框,在构建的时候设置背景透明,但是进行窗口隐藏,使用hide()(之所以隐藏是因为登录的时候不显示,只有在登录失败的时候才显示,即调用show()),再登录失败之后调用...
VC++实现QQ聊天源代码VC++实现QQ聊天源代码VC++实现QQ聊天源代码VC++实现QQ聊天源代码VC++实现QQ聊天源代码VC++实现QQ聊天源代码VC++实现QQ聊天源代码VC++实现QQ聊天源代码
利用duilib的界面库来实现模仿QQ聊天对话框窗口,详细的源码。
这是一个简易的ASP程序,里面有图片教程,实现在线的QQ对话功能 简单实用 实用与初学者 呵呵
右侧QQ浮动框,JS实现可设置右侧或右侧,可设置浮动的位置,可以用ASP PHP HTML等网页
学习了解java的socket编程,防QQ的java源码
实现对话框QQ般隐藏,是自己调试过的,在VC++中没有问题,直接复制粘贴就OK
基于NoneBot实现的QQ机器人(对话机器人),实现一些常用功能和自然语言处理算法内核支持
穿透网关防火墙,可在互联网和局域网任意对话; 系统采用先进的点对点通讯技术,消息(包括文本、语音、视频、文件)的 传输大多数情况不需要经服务器中转而直接发往接收者所使用的机器,传输速度更快。 而且因服务器...
作为站长,为了方便,可以将自己的qq号码贴出来,会员就可以通过“临时会话框”来和你交流了,何乐不为? 为实现上面的功能,将以上代码的“qq号码”换成你的QQ号,就可以了!
基于Android的仿QQ微信聊天系统 数据库sqlserver
本聊天工具是模拟QQ,使用MFC的基于C/S模型的聊天工具,并有数据库支持
基于Springboot+websocket+layui仿QQ在线聊天系统设计 ## 后端采用Springboot框架,前端layui界面,前端和后端聊天基于websocket通信! 注意,目前这个项目没实现注册功能,用户账号和密码都在user表,如果注册...
一个基于数据库的简易QQ,可以实现实时通信,对话,增减好友,更改用户数据等功能
出自博客:https://blog.csdn.net/qq_46526828/article/details/108009495 主要通过获取图灵机器人的免费api,来实现了自动对话的功能
QQ发送文件夹/文件混合对话框的实现, 是基于新系统的新样式的 是对话框的功能部分与发送什么的没关系 按CTRL多选,可以同时选择多个文件/文件夹 VS2015环境下 WIN8测试正常