使用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 相关文章推荐
写了一个layout,拖动条连贯,内容区可为iframe
Aug 19 Javascript
JS模块与命名空间的介绍
Mar 22 Javascript
JS实现商品倒计时实现代码
May 03 Javascript
jQuery ajax调用WCF服务实例
Jul 16 Javascript
Node.js实现在目录中查找某个字符串及所在文件
Sep 03 Javascript
Javascript复制实例详解
Jan 28 Javascript
基于jQuery实现页面搜索功能
Mar 26 Javascript
常用的js方法合集
Mar 10 Javascript
easyUI下拉列表点击事件使用方法
May 18 Javascript
vue element upload实现图片本地预览
Aug 20 Javascript
vue中更改数组中属性,在页面中不生效的解决方法
Oct 30 Javascript
JavaScript编写开发动态时钟
Jul 29 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 数组基础知识小结
2010/08/20 PHP
php调用MySQL存储过程的方法集合(推荐)
2013/07/03 PHP
php ckeditor上传图片文件名乱码解决方法
2013/11/15 PHP
Yii rules常用规则示例
2016/03/15 PHP
简单实现php上传文件功能
2017/09/21 PHP
慎用 somefunction.prototype 分析
2009/06/02 Javascript
js 变量类型转换常用函数与代码[比较全]
2009/12/01 Javascript
使用PHP+JQuery+Ajax分页的实现
2013/04/23 Javascript
angular.js分页代码的实例
2016/07/27 Javascript
JS实现数字格式千分位相互转换方法
2016/08/01 Javascript
概述jQuery中的ajax方法
2016/12/16 Javascript
NodeJs模拟登陆正方教务
2017/04/28 NodeJs
vue-router重定向不刷新问题的解决
2018/06/25 Javascript
Vue项目自动转换 px 为 rem的实现方法
2018/10/29 Javascript
JavaScript事件循环及宏任务微任务原理解析
2020/09/02 Javascript
python中将字典转换成其json字符串
2014/07/16 Python
Python实现提取文章摘要的方法
2015/04/21 Python
flask中过滤器的使用详解
2018/08/01 Python
Python多项式回归的实现方法
2019/03/11 Python
Python实现的排列组合、破解密码算法示例
2019/04/12 Python
解决python执行不输出系统命令弹框的问题
2019/06/24 Python
Django 自定义404 500等错误页面的实现
2020/03/08 Python
Windows 下更改 jupyterlab 默认启动位置的教程详解
2020/05/18 Python
Python基于正则表达式实现计算器功能
2020/07/13 Python
通过实例简单了解python yield使用方法
2020/08/06 Python
css3教程之倾斜页面
2014/01/27 HTML / CSS
【HTML5】Canvas绘制简单图片教程
2016/05/13 HTML / CSS
英国独特礼物想法和个性化礼物网站:notonthehighstreet.com
2018/04/16 全球购物
联想新西兰官方网站:Lenovo New Zealand
2018/10/30 全球购物
Nike挪威官网:Nike.com (NO)
2018/11/26 全球购物
巴西备受欢迎的服装和生活方式品牌:FARM Rio
2020/02/04 全球购物
会计实习自我鉴定
2013/12/04 职场文书
《山谷中的谜底》教学反思
2014/04/26 职场文书
股权转让协议范本
2014/12/07 职场文书
毕业设计答辩开场白
2015/05/29 职场文书
微信小程序实现轮播图指示器
2022/06/25 Javascript