使用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 相关文章推荐
jquery append()方法与html()方法的区别及使用介绍
Aug 01 Javascript
jquery利用命名空间移除绑定事件的方法
Mar 11 Javascript
jQuery遍历DOM的父级元素、子级元素和同级元素的方法总结
Jul 07 Javascript
AngularJS基础 ng-options 指令详解
Aug 02 Javascript
Javascript实现前端简单的路由实例
Sep 11 Javascript
Vue指令的钩子函数使用方法
Mar 20 Javascript
BootStrap 动态表单效果
Jun 02 Javascript
微信小程序 循环及嵌套循环的使用总结
Sep 26 Javascript
javascript实现获取一个日期段内每天不同的价格(计算入住总价格)
Feb 05 Javascript
React Native开发封装Toast与加载Loading组件示例
Sep 08 Javascript
jQuery实现网页拼图游戏
Apr 22 jQuery
javascript解析json格式的数据方法详解
Aug 07 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+MySQL5.0中文乱码解决方法
2006/11/20 PHP
晋城吧对DiscuzX进行的前端优化要点
2010/09/05 PHP
YII路径的用法总结
2014/07/09 PHP
PHP的Yii框架中Model模型的学习教程
2016/03/29 PHP
关于JQuery($.load)事件的用法和分析
2013/04/09 Javascript
『jQuery』.html(),.text()和.val()的概述及使用
2013/04/22 Javascript
详解nodejs 文本操作模块-fs模块(五)
2016/12/23 NodeJs
脚本div实现拖放功能(两种)
2017/02/13 Javascript
网页中的图片查看器viewjs使用方法
2017/07/11 Javascript
IScroll那些事_当内容不足时下拉刷新的解决方法
2017/07/18 Javascript
js实现轮播图的两种方式(构造函数、面向对象)
2017/09/30 Javascript
Vue 中如何正确引入第三方模块的方法步骤
2019/05/05 Javascript
javascript实现遮罩层动态效果实例
2019/05/14 Javascript
JavaScript相等运算符的九条规则示例详解
2019/10/20 Javascript
javascript实现计算器功能
2020/03/30 Javascript
jQuery HTML css()方法与css类实例详解
2020/05/20 jQuery
JavaScript如何判断对象有某属性
2020/07/03 Javascript
[13:39]2014 DOTA2华西杯精英邀请赛 5 25 NewBee VS DK第一场
2014/05/26 DOTA
使用Python脚本将绝对url替换为相对url的教程
2015/04/24 Python
Python fileinput模块使用实例
2015/05/28 Python
Python环境下安装使用异步任务队列包Celery的基础教程
2016/05/07 Python
Python黑魔法@property装饰器的使用技巧解析
2016/06/16 Python
python中文乱码不着急,先看懂字节和字符
2017/12/20 Python
Python button选取本地图片并显示的实例
2019/06/13 Python
python PyAutoGUI 模拟鼠标键盘操作和截屏功能
2019/08/04 Python
python中几种自动微分库解析
2019/08/29 Python
python 爬取古诗文存入mysql数据库的方法
2020/01/08 Python
Python 实现集合Set的示例
2020/12/21 Python
入党转预备思想汇报
2014/01/07 职场文书
公司面试感谢信
2014/02/01 职场文书
物流专员岗位职责
2014/02/17 职场文书
毕业生如何写自我鉴定
2014/03/15 职场文书
置业顾问岗位职责
2015/02/09 职场文书
2015秋季开学典礼致辞
2015/07/16 职场文书
Python多个MP4合成视频的实现方法
2021/07/16 Python
CSS布局之浮动(float)和定位(position)属性的区别
2021/09/25 HTML / CSS