上次回复了一个帖子(忘了是哪个了)发了一个ajax push的例子,但是好像发错了,不能运行,这次发个能运行的:
以下代码,放到服务下方可运行,如tomcat。
客户端 index.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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title> ajax push </title>
</head>
<body>
ajax push test<hr>
<textarea id="ta" rows="40" cols="90"></textarea><br>
<button onclick="test()">test</button>
<div id="inf"></div>
</body>
</html>
<script language="JavaScript">
<!--
window.$i=function(id){return document.getElementById(id); }
String.prototype.trim=function(){return this.replace(/(^\s*)|(\s*$)/g,"");}
function test()
{
$i("ta").value = "loading...\n\n";
request();
}
function request()
{
var req = createXMLHttp();
req.open("get", "push.jsp", true);
req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
req.send(null);
req.onreadystatechange = function ()
{
if(req.readyState == 3)
{
$i("ta").value += req.responseText.trim()+"\n";
}
if(req.readyState == 4 && req.status == 200)
{
$i("ta").value += "end";
}
}
}
//创建XMLHttpRequest
function createXMLHttp()
{
if (window.ActiveXObject)
{
var arr = ["MSXML2.XMLHTTP", "Microsoft.XMLHTTP"];
for(var i=0 ; i < arr.length; i++)
{
try
{
return new ActiveXObject(arr[i]);
}catch(e){}
}
}
else if (window.XMLHttpRequest)
{
return new XMLHttpRequest();
}
alert("您的浏览器不支持ajax");
return null;
}
//-->
</script>
服务端:push.jsp
<%@ page contentType="text/html;charset=utf-8"%>
<%
java.io.PrintWriter p=new java.io.PrintWriter(response.getOutputStream());
String msg = "a";
for(int i=0;i<10;i++)
{
msg+=i;
p.println("HTTP/1.1 200OK");
p.println("Content-Type:text/html; charset:utf-8");
p.println("Content-Length:"+msg.length());//msg为服务器要发到客户端的信息
p.println();
p.println(msg);
System.out.println(msg);
p.flush();
response.getOutputStream().flush();
try
{
Thread.sleep(1000);
}
catch(Exception e)
{ }
}
%>
分享到:
相关推荐
综上所述,这个Web聊天室项目涵盖了从客户端到服务器端的完整实时通信流程,是学习和实践Ajax反向推送技术的一个好例子。通过深入研究和理解这个源码,开发者可以掌握如何在实际项目中应用Server Push,提高Web应用...
例如,WebApplicationold可能是一个简单的用户输入验证,通过Ajax发送数据到服务器,而WebApplication2可能是一个动态加载数据的表格或者实时更新的图表。 4. **Ajax的应用场景** - **表单验证**:在提交前通过...
以下是一个简单的AJAX例子,展示了如何使用JavaScript创建和发送一个AJAX请求: ```javascript // 创建XMLHttpRequest对象 var xhr = new XMLHttpRequest(); // 监听状态变化 xhr.onreadystatechange = function()...
- ****:定义一个Ajax响应的区域,只有该区域内受影响的组件才会被更新。 - ****:为现有的JSF组件添加Ajax功能,如将它添加到 `<h:inputText>` 中,使得输入时能立即触发验证。 ### 4. a4j工作流程 1. **用户交互...
一旦有新数据,Servlet立即将数据作为响应返回给客户端,客户端收到响应后更新页面,并立即发起新的Ajax请求,形成一个循环。 示例代码: 1. 客户端JavaScript: ```javascript function longPolling() { var ...
DWR (Direct Web Remoting) 是一个开源的Ajax框架,它允许JavaScript在浏览器端与Java在服务器端进行直接通信,从而实现动态、无刷新的Web应用程序。本入门例子旨在帮助初学者快速理解并掌握DWR的基本用法和功能。 ...
"Ajax自动搜索"是Ajax技术的一个常见应用,常用于搜索引擎、网站内容过滤或者推荐系统,让用户在输入查询关键词时实时得到匹配结果。 在实现Ajax自动搜索的过程中,主要涉及以下几个关键知识点: 1. **事件监听**...
这个"**dwr简单推送例子**"是一个示例项目,旨在展示如何利用DWR实现服务端向客户端的实时数据推送功能,这是Web应用中实现即时更新、实时聊天或通知的关键技术。 DWR的核心功能是通过AJAX(Asynchronous ...
在这个"Dwr做的一个聊天室例子"中,我们可以深入探讨DWR如何被用来创建一个简单的在线聊天系统。 1. **DWR基础** DWR的核心功能是提供了一个安全且高效的机制,使得JavaScript可以调用服务器端的Java方法,就像...
"jscript 500个例子" 是一个旨在帮助初学者掌握JavaScript基础和进阶技巧的资源集合,通过大量的实践示例来深入理解其语法和用法。 在学习这500个例子时,你可以按照以下几个关键知识点进行系统性的学习: 1. **...
在本示例中,我们将探讨如何使用 Ajax 来创建一个简单的在线聊天室,模拟类似腾讯QQ的实时通信体验。这个聊天室的实现主要依赖于JavaScript的异步处理能力,以及XMLHttpRequest对象,它允许我们在后台与服务器交换...
这个例子可能包含了一个服务端页面(Service.aspx和服务.aspx.cs),以及一个客户端的HTML页面(ajax.html)。服务端页面处理与客户端的长连接,而客户端页面通过Ajax请求建立并维护这个连接。 描述中提到,这个...
这个"java推送例子"很可能是关于如何在Java环境中实现实时数据推送的一个演示项目,名为“dwrpush_demo”。DWR(Direct Web Remoting)是一个开源的Java库,它允许在浏览器和服务器之间进行全双工通信,非常适合用于...
每个例子都是一个独立的知识点,通过实践和调试,你将深化对JavaScript的理解,提升编程技能。记住,理论结合实践是学习编程的最好方式,所以不要只是阅读代码,更要动手尝试和修改,看看会产生什么有趣的结果。
在描述中提到的案例是一个使用DWR构建的广播或群聊系统。DWR的实时更新能力使其非常适合用于构建这样的系统。通过DWR的Push技术,服务器可以主动向客户端推送消息,而不仅仅是响应客户端的请求。这种模式在群聊系统...
### 第一个RAP例子程序知识点详解 #### 一、RAP简介 RAP(RCP for the Web)是一种基于Eclipse RCP的Web应用程序开发框架。它利用HTML、JavaScript等Web技术为客户端提供用户界面,并通过AJAX与服务器端进行交互。...
11. **闭包**:闭包是JavaScript中一个高级概念,允许函数访问和修改外部作用域的变量,同时保持自身的状态。 12. **模块化**:随着ES6的引入,JavaScript支持模块化编程,如export和import关键字,有助于组织和...
以下是一个简单的示例,展示了如何在Ajax请求后使用`pushState`: ```javascript function makeAjaxRequest(url) { var xhr = new XMLHttpRequest(); xhr.open('GET', url, true); xhr.onreadystatechange = ...
1. **javascript例子**:这个文件可能包含一个或多个基础的JavaScript代码示例,如变量声明、数据类型、条件语句(if...else)、循环(for、while)等,这些都是初学者入门时必须了解的基本概念。 2. **javascript_...