使用jQuery调用XML实现无刷新即时聊天


Posted in Javascript onAugust 07, 2016

HTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>使用JQuery调用XML实现无刷新即时聊天</title>
<script src="Jscript/jquery-1.8.2.min.js" type="text/javascript"></script>
<style type="text/css" >
body{font-size:13px}
h3{ padding:0px; margin:8px 0px}
.iframe{ width:260px; border: solid 1px #666}
.iframe .title{padding:5px; background-color:#eee}
.iframe .title .spnId{font-weight:bold; font-family:Arial}
.iframe .content{ padding:8px; font-size:12px;}
.iframe .content .lst{ height :180px; border: solid 1px #ccc; padding:3px; line-height:1.5em; overflow-y:scroll;}
.iframe .content .nav{ color:#006EE}
.iframe .content .nav .time,
.iframe .content .msg{ margin-left:5px}
.iframe .content .txt{ height:50px; width:238px; border:solid 1px #ccc}
.btn {border:#666 1px solid;padding:2px;width:80px;
filter: progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#ffffff, EndColorStr=#ECE9D8);}
</style>
<script type="text/javascript">
$(function () {
var $FormId = 1243242;
var $SendId = 1234560;
$("#spnSendId").html($SendId);
setTimeout(showList($FormId, $SendId), 3000);
$("#btnSend").click(function () {
$.ajax({
url: 'Chat.ashx?s=' + $SendId + '&f=' + $FormId + '&c=' + txtA.value,
success: function (data) {
if (data == 1) {
showList($FormId, $SendId);
txtA.value = "";
}
}
});
});
function showList(f, s) {
$.ajax({
url: 'Chat.xml',
dataType: 'xml',
success: function (data) {
var $strUser = $(data).find("message");
var strHTML = "";
$strUser.each(function () {
if (($(this).attr("fId") == f && $(this).attr("sId") == s) || ($(this).attr("fId") == s && $(this).attr("sId") == f)) {
var strNav = $(this).attr("fId");
if (strNav == f) {
strNav = "我说";
}
strHTML += '<div class=\"nav\"><span>(' + strNav + ')<\/span><span class =\"time\">' + $(this).children("datetime").text() + '<\/span><\/div>';
strHTML += '<div class=\"msg\">' + $(this).children("content").text() + '<\/div>';
}
});
//显示处理后的数据
$("#chatList").html(strHTML);
}
});
}
})
</script>
</head>
<body>
<div class="iframe">
<div class="title">德仔即时聊天与
(<span id="spnSendId" class="spnId"></span> )聊天中
</div>
<div class ="content">
<div id="chatList" class="lst"></div>
</div>
<div class="content">
<textarea id="txtA" class="txt"></textarea>
<input id="btnSend" type="button" value="发送" class="btn" />
</div>
</div>
</body>
</html>

Chat.ashx:

<%@ WebHandler Language="C#" Class="Chat" %>
using System;
using System.Web;
using System.Xml;
public class Chat : IHttpHandler {
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/plain";
string strContent = context.Request.QueryString["c"].ToString();
string strFromId = context.Request.QueryString["f"].ToString();
string strSendId = context.Request.QueryString["s"].ToString();
int intSuccess = 0;
string strDate = DateTime.Now.ToString("HH:mm:ss");
XmlDocument xmlDoc = new XmlDocument();
try
{
xmlDoc.Load(context.Server.MapPath("Chat.xml"));
XmlNode root = xmlDoc.SelectSingleNode("chat");
XmlElement xmlE = xmlDoc.CreateElement("message");
xmlE.SetAttribute("fId", strFromId);
xmlE.SetAttribute("sId", strSendId);
XmlElement xmlEd = xmlDoc.CreateElement("datetime");
xmlEd.InnerText = strDate;
xmlE.AppendChild(xmlEd);
XmlElement xmlEc = xmlDoc.CreateElement("content");
xmlEc.InnerText = strContent;
xmlE.AppendChild(xmlEc);
root.AppendChild(xmlE);
xmlDoc.Save(context.Server.MapPath("Chat.xml"));
intSuccess = 1;
}
catch(Exception ex) {
throw ex;
}
context.Response.Write(intSuccess);
}
public bool IsReusable {
get {
return false;
}
}
}

使用jQuery调用XML实现无刷新即时聊天

以上所述是小编给大家介绍的使用jQuery调用XML实现无刷新即时聊天,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言哦!

Javascript 相关文章推荐
filters.revealTrans.Transition使用方法小结
Aug 19 Javascript
jquery根据name属性查找的小例子
Nov 21 Javascript
jQuery实现tag便签去重效果的方法
Jan 20 Javascript
jquery实现全选和全不选功能效果的实现代码【推荐】
May 05 Javascript
Jquery基础之事件操作详解
Jun 14 Javascript
Node.js websocket使用socket.io库实现实时聊天室
Feb 20 Javascript
对vuejs的v-for遍历、v-bind动态改变值、v-if进行判断的实例讲解
Aug 27 Javascript
使用angularjs.foreach时return的问题解决
Sep 30 Javascript
Vue表单输入绑定的示例代码
Nov 01 Javascript
Node.js 的 GC 机制详解
Jun 03 Javascript
微信小程序保存图片到相册权限设置
Apr 09 Javascript
vue-router为激活的路由设置样式操作
Jul 18 Javascript
JS中使用FormData上传文件、图片的方法
Aug 07 #Javascript
深入理解Angular2 模板语法
Aug 07 #Javascript
JS上传图片预览插件制作(兼容到IE6)
Aug 07 #Javascript
JavaScript兼容性总结之获取非行间样式案例
Aug 07 #Javascript
jQuery调用Webservice传递json数组的方法
Aug 06 #Javascript
Google 地图API Map()构造器详解
Aug 06 #Javascript
Google 地图API资料整理及详细介绍
Aug 06 #Javascript
You might like
php 之 没有mysql支持时的替代方案
2006/10/09 PHP
php获取某个目录大小的代码
2008/09/10 PHP
yii2带搜索功能的下拉框实例详解
2016/05/12 PHP
php curl中gzip的压缩性能测试实例分析
2016/11/08 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
2017/07/22 PHP
jQuery-Tools-overlay 使用介绍
2012/07/14 Javascript
关于jQuery参考实例2.0 用jQuery选择元素
2013/04/07 Javascript
js中Math之random,round,ceil,floor的用法总结
2013/12/26 Javascript
两种方法实现在HTML页面加载完毕后运行某个js
2014/06/16 Javascript
浅析javascript的间隔调用和延时调用
2014/11/12 Javascript
使用javascript实现判断当前浏览器
2015/04/14 Javascript
jquery插件jquery.beforeafter.js实现左右拖拽分隔条对比图片的方法
2015/08/07 Javascript
AngularJS+Node.js实现在线聊天室
2015/08/28 Javascript
Hallo.js基于jQuery UI所见即所得的Web编辑器
2016/01/26 Javascript
JS组件Bootstrap dropdown组件扩展hover事件
2016/04/17 Javascript
JS组件Bootstrap Select2使用方法解析
2016/05/30 Javascript
详解vue-cli + webpack 多页面实例应用
2017/04/25 Javascript
jQuery使用ajax_动力节点Java学院整理
2017/07/05 jQuery
微信小程序 五星评分的实现实例
2017/08/04 Javascript
JS判断微信扫码的方法
2017/08/07 Javascript
Mac下通过brew安装指定版本的nodejs教程
2018/05/17 NodeJs
简单易扩展可控性强的Jquery转盘抽奖程序
2019/03/16 jQuery
Vue中Table组件Select的勾选和取消勾选事件详解
2019/03/19 Javascript
javascript数组的定义及操作实例
2019/11/10 Javascript
python实现求解列表中元素的排列和组合问题
2018/03/15 Python
机器学习之KNN算法原理及Python实现方法详解
2018/07/09 Python
Python 判断文件或目录是否存在的实例代码
2018/07/19 Python
解决pycharm py文件运行后停止按钮变成了灰色的问题
2018/11/29 Python
python之Flask实现简单登录功能的示例代码
2018/12/24 Python
详解解决Python memory error的问题(四种解决方案)
2019/08/08 Python
周生生珠宝香港官网:Chow Sang Sang(香港及海外配送)
2019/09/05 全球购物
斯洛伐克家具和时尚装饰品购物网站:Butlers.sk
2019/09/08 全球购物
学生会主席演讲稿
2014/04/25 职场文书
感恩父母的演讲稿
2014/05/06 职场文书
如何使用Python实现一个简易的ORM模型
2021/05/12 Python
CDPR谈《巫师》新作用虚幻5原因 称不会为Epic独占
2022/04/06 其他游戏