使用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查询DBpedia小应用实例学习
Mar 07 Javascript
javascript实现存储hmtl字符串示例
Apr 25 Javascript
window.onload与$(document).ready()的区别分析
May 30 Javascript
详细探究ES6之Proxy代理
Jul 22 Javascript
jQuery按需加载轮播图(web前端性能优化)
Feb 17 Javascript
纯js实现图片匀速淡入淡出效果
Aug 22 Javascript
基于vue-video-player自定义播放器的方法
Mar 21 Javascript
详解vue使用插槽分发内容slot的用法
Mar 28 Javascript
vue实现登录页面的验证码以及验证过程解析(面向新手)
Aug 02 Javascript
Vue实现简单计算器案例
Feb 25 Javascript
解决vue的router组件component在import时不能使用变量问题
Jul 26 Javascript
Vue3.0 手写放大镜效果
Jul 25 Vue.js
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 CLI实现简单的数据库实时监控调度
2009/07/01 PHP
php 冒泡排序 交换排序法
2011/05/10 PHP
克隆一个新项目的快捷方式
2013/04/10 PHP
浅析php中jsonp的跨域实例
2013/06/21 PHP
thinkphp3查询mssql数据库乱码解决方法分享
2014/02/11 PHP
PHP+RabbitMQ实现消息队列的完整代码
2019/03/20 PHP
使用TextRange获取输入框中光标的位
2006/10/14 Javascript
(转载)JavaScript中匿名函数,函数直接量和闭包
2007/05/08 Javascript
JSDoc 介绍使用规范JsDoc的使用介绍
2011/02/12 Javascript
js动态添加删除,后台取数据(示例代码)
2013/11/25 Javascript
javascript中var的重要性分析
2015/02/11 Javascript
javascript禁止访客复制网页内容的实现代码
2015/08/05 Javascript
javascript中for/in循环及使用技巧
2015/09/01 Javascript
理解AngularJs篇:30分钟快速掌握AngularJs
2016/12/23 Javascript
解决JSON.stringify()自动将中文转译成unicode的问题
2018/01/05 Javascript
vue2中使用sass并配置全局的sass样式变量的方法
2018/09/04 Javascript
vue实现双向绑定和依赖收集遇到的坑
2018/11/29 Javascript
小试SVG之新手小白入门教程
2019/01/08 Javascript
深入浅析Vue 中 ref 的使用
2019/04/29 Javascript
小程序异步问题之多个网络请求依次执行并依次收集请求结果
2019/05/05 Javascript
JS实现盒子拖拽效果
2020/02/06 Javascript
vue中利用three.js实现全景图的完整示例
2020/12/07 Vue.js
Python 专题二 条件语句和循环语句的基础知识
2017/03/19 Python
python3+mysql查询数据并通过邮件群发excel附件
2018/02/24 Python
python 实现批量xls文件转csv文件的方法
2018/10/23 Python
很酷的python表白工具 你喜欢我吗
2019/04/11 Python
python采集百度搜索结果带有特定URL的链接代码实例
2019/08/30 Python
使用python绘制二维图形示例
2019/11/22 Python
Django实现内容缓存实例方法
2020/06/30 Python
python输出结果刷新及进度条的实现操作
2020/07/13 Python
日本最大的购物网站乐天市场国际版:Rakuten Global Market(支持中文)
2020/02/03 全球购物
说一下Linux下有关用户和组管理的命令
2016/01/04 面试题
售后服务承诺书范文
2014/03/26 职场文书
酒店优秀员工事迹材料
2014/06/02 职场文书
乡镇消防安全责任书
2014/07/23 职场文书
2014乡镇党政班子四风问题思想汇报
2014/09/14 职场文书