使用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 相关文章推荐
仅用[]()+!等符号就足以实现几乎任意Javascript代码
Mar 01 Javascript
Ajax执行顺序流程及回调问题分析
Dec 10 Javascript
javascript数字验证的实例代码(推荐)
Aug 20 Javascript
Ionic默认的Tabs模板使用实例
Aug 29 Javascript
jQuery+ajax读取并解析XML文件的方法
Sep 09 Javascript
js实现的xml对象转json功能示例
Dec 24 Javascript
vue教程之toast弹框全局调用示例详解
Aug 24 Javascript
vue.js项目中实用的小技巧汇总
Nov 29 Javascript
在 webpack 中使用 ECharts的实例详解
Feb 05 Javascript
在vue中实现点击选择框阻止弹出层消失的方法
Sep 15 Javascript
iview同时验证多个表单问题总结
Sep 29 Javascript
Windows上node.js的多版本管理工具用法实例分析
Nov 06 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实现图片简单上传
2006/10/09 PHP
PHP include任意文件或URL介绍
2014/04/29 PHP
JQuery UI的拖拽功能实现方法小结
2012/03/14 Javascript
javascript移出节点removeChild()使用介绍
2014/04/03 Javascript
JavaScript判断变量是对象还是数组的方法
2014/08/28 Javascript
基于NodeJS的前后端分离的思考与实践(六)Nginx + Node.js + Java 的软件栈部署实践
2014/09/26 NodeJs
JS交换变量的方法
2015/01/21 Javascript
jQuery实现点击小图显示大图代码分享
2015/08/25 Javascript
纯JS焦点图特效实例(可一个页面多用)
2016/12/07 Javascript
AngularJS封装指令方法详解
2016/12/12 Javascript
移动端脚本框架Hammer.js
2016/12/15 Javascript
简单实现nodejs上传功能
2017/01/14 NodeJs
快速将Vue项目升级到webpack3的方法步骤
2017/09/14 Javascript
AngularJS中重新加载当前路由页面的方法
2018/03/09 Javascript
JS面向对象编程基础篇(三) 继承操作实例详解
2020/03/03 Javascript
[42:00]完美世界DOTA2联赛PWL S3 Phoenix vs INK ICE 第一场 12.13
2020/12/17 DOTA
java直接调用python脚本的例子
2014/02/16 Python
django自定义Field实现一个字段存储以逗号分隔的字符串
2014/04/27 Python
Python和perl实现批量对目录下电子书文件重命名的代码分享
2014/11/21 Python
python  Django中的apps.py的目的是什么
2018/10/15 Python
Django的CVB实例详解
2020/02/10 Python
opencv python 图片读取与显示图片窗口未响应问题的解决
2020/04/24 Python
Python Pivot table透视表使用方法解析
2020/09/11 Python
在浏览器端如何得到服务器端响应的XML数据
2012/11/24 面试题
农行实习自我鉴定
2013/09/22 职场文书
环保倡议书300字
2014/05/15 职场文书
公证委托书标准格式
2014/09/11 职场文书
滞留工资返还协议书
2014/10/19 职场文书
基层党组织整改方案
2014/10/25 职场文书
学校党的群众路线教育实践活动整改措施
2014/10/25 职场文书
2014年卫生保健工作总结
2014/12/08 职场文书
离婚起诉书怎么写
2015/05/19 职场文书
Python数据清洗工具之Numpy的基本操作
2021/04/22 Python
golang import自定义包方式
2021/04/29 Golang
python设置 matplotlib 正确显示中文的四种方式
2021/05/10 Python
python程序的组织结构详解
2021/12/06 Python