使用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 相关文章推荐
top.location.href 没有权限 解决方法
Aug 05 Javascript
javascript 字符串连接的性能问题(多浏览器)
Nov 18 Javascript
使用js获取QueryString的方法小结
Feb 28 Javascript
jquery.ajax之beforeSend方法使用介绍
Dec 08 Javascript
30个经典的jQuery代码开发技巧
Dec 15 Javascript
EasyUI在表单提交之前进行验证的实例代码
Jun 24 Javascript
AngularJS ng-bind-html 指令详解及实例代码
Jul 30 Javascript
jQuery操作cookie
Aug 08 Javascript
浅谈js script标签中的预解析
Dec 30 Javascript
JS实现简单拖拽效果
Jun 21 Javascript
微信小程序如何连接Java后台
Aug 08 Javascript
JavaScript实现手机号码 3-4-4格式并控制新增和删除时光标的位置
Jun 02 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
深入了解php4(2)--重访过去
2006/10/09 PHP
php socket方式提交的post详解
2008/07/19 PHP
UTF8编码内的繁简转换的PHP类
2009/07/09 PHP
使ecshop模板中可引用常量的实现方法
2011/06/02 PHP
php版微信发红包接口用法示例
2016/09/23 PHP
php设计模式之原型模式分析【星际争霸游戏案例】
2020/03/23 PHP
jquery 必填项判断表单是否为空的方法
2008/09/14 Javascript
JS按位非(~)运算符与~~运算符的理解分析
2011/07/31 Javascript
分析Node.js connect ECONNREFUSED错误
2013/04/09 Javascript
JavaScript获取按钮所在form表单id的方法
2015/04/02 Javascript
异步JavaScript编程中的Promise使用方法
2015/07/28 Javascript
jquery性能优化高级技巧
2015/08/24 Javascript
jquery实现鼠标经过显示下划线的渐变下拉菜单效果代码
2015/08/24 Javascript
JavaScript动态创建div等元素实例讲解
2016/01/06 Javascript
jQuery.Validate表单验证插件的使用示例详解
2017/01/04 Javascript
Angular在一个页面中使用两个ng-app的方法(二)
2017/02/20 Javascript
微信小程序之数据双向绑定与数据操作
2017/05/12 Javascript
gulp教程_从入门到项目中快速上手使用方法
2017/09/14 Javascript
Angular CLI在Angular项目中如何使用scss详解
2018/04/10 Javascript
详解使用jest对vue项目进行单元测试
2018/09/07 Javascript
JS模拟实现京东快递单号查询
2020/11/30 Javascript
[06:36]吞吞映像top1
2014/06/20 DOTA
Python实现网站文件的全备份和差异备份
2014/11/30 Python
Python中的if、else、elif语句用法简明讲解
2016/03/11 Python
Python 模拟购物车的实例讲解
2017/09/11 Python
Python实现比较扑克牌大小程序代码示例
2017/12/06 Python
tensorflow实现简单的卷积网络
2018/05/24 Python
详解Python的数据库操作(pymysql)
2019/04/04 Python
Python print不能立即打印的解决方式
2020/02/19 Python
公司部门司机岗位职责
2014/01/03 职场文书
2015年基层党建工作汇报材料
2015/06/25 职场文书
2015少先队大队辅导员工作总结
2015/07/24 职场文书
2015年新教师个人工作总结
2015/10/14 职场文书
pytorch锁死在dataloader(训练时卡死)
2021/05/28 Python
Redis主从配置和底层实现原理解析(实战记录)
2021/06/30 Redis
详解Spring Bean的配置方式与实例化
2022/06/10 Java/Android