使用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自定义滚动条插件示例分享
Feb 21 Javascript
JS+CSS实现自动改变切换方向图片幻灯切换效果的方法
Mar 02 Javascript
JavaScript在浏览器标题栏上显示当前日期和时间的方法
Mar 19 Javascript
jQuery+Ajax实现限制查询间隔的方法
Jun 07 Javascript
微信小程序 vidao实现视频播放和弹幕的功能
Nov 02 Javascript
React如何利用相对于根目录进行引用组件详解
Oct 09 Javascript
JS实现将对象转化为数组的方法分析
Jan 21 Javascript
关于vue2强制刷新,解决页面不会重新渲染的问题
Oct 29 Javascript
在vue中使用echars实现上浮与下钻效果
Nov 08 Javascript
vue el-table实现自定义表头
Dec 11 Javascript
jquery实现上传图片功能
Jun 29 jQuery
实现AJAX异步调用和局部刷新的基本步骤
Mar 17 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 include和require的区别深入解析
2013/06/17 PHP
PHP代码优化之成员变量获取速度对比
2014/02/28 PHP
php创建桌面快捷方式实现方法
2015/12/31 PHP
php实现的网页版剪刀石头布游戏示例
2016/11/25 PHP
php PDO实现的事务回滚示例
2017/03/23 PHP
JavaScript实现网页图片等比例缩放实现代码及调用方式
2013/02/25 Javascript
JS中 用户登录系统的解决办法
2013/04/15 Javascript
基于jQuery实现仿百度首页换肤背景图片切换代码
2015/08/25 Javascript
简单对比分析JavaScript中的apply,call与this的使用
2015/12/04 Javascript
浅谈jquery采用attr修改form表单enctype不起作用的问题
2016/11/25 Javascript
浅谈javascript alert和confirm的美化
2016/12/15 Javascript
微信小程序select下拉框实现效果
2019/05/15 Javascript
JS使用cookie保存用户登录信息操作示例
2019/05/30 Javascript
JavaScript 截取字符串代码实例
2019/09/05 Javascript
layui 关闭open弹出框 刷新table表格页面的方法
2019/09/16 Javascript
基于JQuery和DWR实现异步数据传递
2020/10/16 jQuery
如何编写一个 Webpack Loader的实现
2020/10/18 Javascript
vue前端和Django后端如何查询一定时间段内的数据
2021/02/28 Vue.js
python实现识别相似图片小结
2016/02/22 Python
python 环境变量和import模块导入方法(详解)
2017/07/11 Python
python 中的int()函数怎么用
2017/10/17 Python
pandas表连接 索引上的合并方法
2018/06/08 Python
Python实现将数据写入netCDF4中的方法示例
2018/08/30 Python
详解python的argpare和click模块小结
2019/03/31 Python
用pycharm开发django项目示例代码
2019/06/13 Python
libreoffice python 操作word及excel文档的方法
2019/07/04 Python
pycharm全局搜索的具体步骤
2020/07/28 Python
Python爬虫与反爬虫大战
2020/07/30 Python
Python生成pdf目录书签的实例方法
2020/10/29 Python
如何用 Python 处理不平衡数据集
2021/01/04 Python
app内嵌H5 webview 本地缓存问题的解决
2020/10/19 HTML / CSS
英国玛莎百货美国官网:Marks & Spencer美国
2018/11/06 全球购物
酒店门卫岗位职责
2013/12/29 职场文书
幼教简历自我评价
2014/01/28 职场文书
单身联谊活动方案
2014/01/29 职场文书
领导班子整改方案和个人整改措施
2014/10/25 职场文书