`
ericxu131
  • 浏览: 188423 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

自制超简单JQuery AJAX聊天室

阅读更多
上午无聊,做着玩玩。
不要鄙视我哟。哈哈


源码如下:
一共三个jsp

index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>聊天室</title>
<script type="text/javascript" src="jquery-1.2.5.pack.js"></script>
</head>
<body>
<div id="content" style="font-size: 12px;overflow-y:auto ;height: 300px;width: 300px;border: 1px solid #CCC;padding: 10px;float: left;"></div>
<div id="member" style="overflow-y:auto ;height: 300px;width: 100px;border: 1px solid #CCC;padding: 10px;"></div>


<textarea rows="5" cols="35" id="say"></textarea><br/><input onclick="send();" type="button" value="发送"/>
<script type="text/javascript">

function inChat(){
$.ajax({
  type: "POST",
  url: "member.jsp",
  success: function(msg){
  getMember();
  }
});
}

function send(){
$.ajax({
  type: "POST",
  url: "content.jsp",
  data: "say="+$("#say").val(),
  success: function(msg){
  getContent();
  $("#say").val("");
  }
});

}
getContent();
getMember();
window.setInterval(function(){getContent();getMember();},3000);


function getContent(){
$.ajax({
  type: "POST",
  url: "content.jsp",
  success: function(msg){
  $("#content").html(msg);
  }
});
}

function getMember(){
$.ajax({
  type: "POST",
  url: "member.jsp",
  success: function(msg){
  $("#member").html(msg);
  }
});
}
</script>
</body>
</html>



member.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
if(application.getAttribute("member")==null)
	application.setAttribute("member",new java.util.HashSet());

java.util.Set member=(java.util.Set)application.getAttribute("member");
member.add(request.getRemoteAddr());
%>

<% for(Object o:member){%>
<%=o%><br/>
<%}%>




content.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%
if(application.getAttribute("content")==null)application.setAttribute("content","");
%>
<%
if(request.getParameter("say")!=null)
application.setAttribute("content",application.getAttribute("content")+"<br/>"+request.getRemoteAddr()+": "+request.getParameter("say"));
%>
<%=application.getAttribute("content")%>




把这三个页面和jquery-1.2.5.pack.js包放在WebContent下就可以了,有乱码问题的话加个编码过滤器就可以了。

我在web.xml里面加了spring现成的过滤器
	<filter>
		<filter-name>encodingFilter</filter-name>
		<filter-class>
			org.springframework.web.filter.CharacterEncodingFilter
		</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>utf-8</param-value>
		</init-param>
		<init-param>
			<param-name>forceEncoding</param-name>
			<param-value>true</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>encodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
		<dispatcher>REQUEST</dispatcher>
		<dispatcher>FORWARD</dispatcher>
	</filter-mapping>
分享到:
评论
9 楼 ice_l_h 2008-11-19  
赞一个。不错噢~
8 楼 375721064 2008-10-14  
还可以 哈哈 挺好玩
7 楼 375721064 2008-10-10  
把程序打包下发过来吧
6 楼 ericxu131 2008-06-22  
ydy88 写道
ayeah 写道
原理是这个,真跑起来估计几个人就垮了。。。

性能的瓶颈在于每次执行getContent都会把服务器上所有的对话内容都抓下来,人多是一个导致性能下降的原因,但是就算只有一个人,说的话太多也会导致性能下降。
如果getContent可以做到只抓取最新的对话内容,性能应该可以稳定很多,一些比较实用的基于ajax的聊天工具大约是这样操作的

说的对。
当前的聊天内容+聊天记录。真正要做好的话还是需要做很多优化的。
这段时间公司在做一个iframe的长连接聊天室。感觉还是长轮询比较好,虽然实时性没有长连接好,但是没有连接太多造成的性能瓶颈。个人还是比较支持长轮询的方式。
5 楼 ydy88 2008-06-20  
ayeah 写道
原理是这个,真跑起来估计几个人就垮了。。。

性能的瓶颈在于每次执行getContent都会把服务器上所有的对话内容都抓下来,人多是一个导致性能下降的原因,但是就算只有一个人,说的话太多也会导致性能下降。
如果getContent可以做到只抓取最新的对话内容,性能应该可以稳定很多,一些比较实用的基于ajax的聊天工具大约是这样操作的
4 楼 ericxu131 2008-06-19  
ayeah 写道
原理是这个,真跑起来估计几个人就垮了。。。

呵呵。你试过吗?
3 楼 ayeah 2008-06-18  
原理是这个,真跑起来估计几个人就垮了。。。
2 楼 yuhui0531 2008-06-18  
运行不了。。
1 楼 ghy_20081010 2008-06-13  
这个确实不错 值得去研究一下 !!!

相关推荐

    基于jQuery的Ajax聊天室程序

    【基于jQuery的Ajax聊天室程序】是一个典型的Web交互应用,它利用了Ajax技术来实现实时的、无需页面刷新的用户交流。Ajax(Asynchronous JavaScript and XML)是一种在不重新加载整个网页的情况下,能够更新部分网页...

    基于jquery的ajax聊天室

    基于jQuery的Ajax聊天室应用 在当今网络技术日益普及的时代,人们通过网络进行交流的方式变得多样化。网络聊天室便是其中之一,满足了网络中多人同时聊天交流的需要,使得较多的人在同一个聊天页面进行交流变得方便...

    锋利的jQuery Ajax聊天室 程序 asp.net 代码

    锋利的jQuery Ajax聊天室 程序 asp.net 代码.书中源码为php版的.现传一个asp.net版的.

    简单的JQuery+AJAX在线聊天室

    总的来说,这个"简单的JQuery+AJAX在线聊天室"是学习前端开发和理解Web交互原理的好起点。它涉及到的主要知识点有:jQuery的DOM操作、事件处理、AJAX的使用、服务器端的响应处理以及页面动态更新。通过实践这个项目...

    JSP+AJAX华丽界面聊天室(jQuery框架)

    【JSP+AJAX华丽界面聊天室】是一个利用JavaServer Pages(JSP)技术和AJAX(Asynchronous JavaScript and XML)动态网页技术构建的实时交互应用。在这个项目中,开发人员选择了jQuery作为AJAX的框架,因为jQuery简化...

    Jquery Ajax分页(有实例)

    **jQuery AJAX分页技术详解** 在Web开发中,分页是一种常见的数据展示方式,它能够有效地组织大量数据,提高页面加载速度,优化用户体验。jQuery,一个轻量级、功能丰富的JavaScript库,结合AJAX(异步JavaScript和...

    Jquery Ajax简易计算器

    "jQuery AJAX简易计算器"是一个实用示例,展示了如何利用jQuery和AJAX实现一个简单的动态计算功能。通过这个项目,开发者可以学习到如何在客户端和服务器之间有效地交换数据,以及如何更新页面内容而无需刷新整个...

    JqueryAjax简单实例

    在这个"JqueryAjax简单实例"中,我们主要关注如何在Visual Studio 2005 C#环境下利用jQuery实现AJAX的功能。首先,我们需要确保项目中已经引入了jQuery库。这通常通过在HTML头部添加jQuery库的CDN链接或者将jQuery....

    简单Ajax聊天室 实现聊天功能

    本项目“简单Ajax聊天室 实现聊天功能”利用ASP.NET框架和Ajax技术,构建了一个实时、交互性强的在线聊天平台。在这个聊天室中,用户不仅能发送文字消息,还能调整字体样式、颜色,并发送QQ表情,极大地提升了用户...

    ajax聊天室 jquery+C#

    本项目"ajax聊天室"是一个基于jQuery和C#后端构建的简单实例,特别适合初学者学习和理解Ajax的基本用法。 **jQuery库的引入** jQuery是一个轻量级的JavaScript库,它简化了HTML文档遍历、事件处理、动画和Ajax交互...

    大型Ajax聊天室(ASP.NET+jQuery)

    大型Ajax聊天室(ASP.NET+jQuery) ASP.NET+JQuery实现Ajax无刷新技术,程序比较简单,只有一个ajax.aspx是动态页面,其余全是静态页面。因此,本程序是您学习Ajax的好范例,其使用的JQuery插件,也是目前Ajax技术...

    ajax简易聊天室

    【Ajax简易聊天室】是一个基于JSP、Ajax和Java技术实现的在线实时交流平台,它允许用户无需刷新页面即可发送和接收消息,提供了一种轻松、便捷的沟通体验。在这个项目中,Ajax起到了关键作用,它是一种在不重新加载...

    jqueryajax jquery ajax

    **jQuery AJAX** 是一个在Web开发中广泛使用的JavaScript库,由John Resig于2006年创建。jQuery简化了JavaScript中的异步HTTP(Ajax)请求,使得开发者能够轻松地与服务器进行数据交互,实现页面的局部刷新,提高...

    asp+jquery ajax实例源码,添加,删除,修改,分页

    - jQuery提供了$.ajax()函数,使得发起AJAX请求变得简单。该函数允许我们指定URL、请求类型(GET或POST)、数据、回调函数等参数,实现异步数据通信。 - AJAX的核心优势在于其非阻塞特性,能提高用户体验,因为...

    jquery ajax Datatable与json之间数据转换

    jquery ajax Datatable与json之间数据转换jquery ajax Datatable与json之间数据转换jquery ajax Datatable与json之间数据转换jquery ajax Datatable与json之间数据转换jquery ajax Datatable与json之间数据转换...

    jquery ajax源代码

    jquery ajax源代码

    Ajax简易在线聊天室

    **Ajax简易在线聊天室** Ajax(Asynchronous JavaScript and XML)技术是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。这个"Ajax简易在线聊天室"项目是一个很好的学习实例,它将帮助我们深入理解...

    jQuery Ajax过滤器

    **jQuery Ajax过滤器详解** 在Web开发中,Ajax(Asynchronous JavaScript and XML)技术被广泛应用于页面异步更新,提供更流畅的用户体验。jQuery库简化了Ajax操作,它内置了一系列强大的Ajax方法,其中包括Ajax...

    JQueryAjax用到的jar包

    首先,jQuery是一个流行的JavaScript库,它使得DOM操作、事件处理、动画设计以及Ajax请求变得简单易行。jQuery的核心功能包括选择器(用于查找HTML元素)、遍历和修改DOM、处理事件以及创建复杂的动画效果。然而,...

    jQuery Ajax 实例 全解析

    jQuery Ajax 实例 全解析; jQuery Ajax 实例 全解析;

Global site tag (gtag.js) - Google Analytics