dwr提供了3中方向ajax
1、轮询
2、comet
3、piggybacking
轮询就是客户端轮询服务器,看是够存在更新,并且显示新信息
comet 持续的服务器连接,长时间的连接,服务器过载和用完请求处理进程
piggybacking,服务器会进行队列响应,并在客户端的下一个请求中进行发送
不会给服务器增加负担
代码实现:
轮询:
1、对dwr servlet进行一些配置
<init-param>
<param-name>activeReverseAjaxEnabled</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>org.directwebremoting.extend.ServerLoadMonitor</param-name>
<param-value>org.directwebremoting.impl.PollingServerLoadMonitor</param-value>
</init-param>
<init-param>
<!-- This should be disconnectedTime, but because of a bug prior to the -->
<!-- as yet unreleased 2.0.2, you have to use timeToNextPoll. Use -->
<!-- disconnectedTime from 2.0.2 onward. -->
<param-name>timeToNextPoll</param-name>
<param-value>1000</param-value>
</init-param>
2、在页面中,还需要一些JavaScript代码
dwr.engine.setActiveReverseAjax(true);
只需要上述代码和web.xml中的配置,就可以激活反向ajax
如何处理这些轮询请求:
通常在服务器端编写一些代码,以更新附加到服务器端的每个客户端的会话。
dwr会记录与之联系的每个客户端,分别存储每个客户端的会话。。借助于此
可以调用JavaScript代码,下一个轮询请求会通知这些调用
String currentPage = wContext.getCurrentPage();
Collection sessions = wContext.getScriptSessionsByPage(CurrentPage);
Util utilAll = new Util(sessions);
utilAll.setValue("divTest",d.toString(),true);
如果不希望使用轮询方法,那么非常容易地切换成comet方法
只需要吧web.xml如下代码去掉即可
<init-param>
<param-name>org.directwebremoting.extend.ServerLoadMonitor</param-name>
<param-value>org.directwebremoting.impl.PollingServerLoadMonitor</param-value>
</init-param>
如果要启动piggybacking技术,只需要从web.XMl文件删除一下代码:
<init-param>
<param-name>activeReverseAjaxEnabled</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>org.directwebremoting.extend.ServerLoadMonitor</param-name>
<param-value>org.directwebremoting.impl.PollingServerLoadMonitor</param-value>
</init-param>
<init-param>
<!-- This should be disconnectedTime, but because of a bug prior to the -->
<!-- as yet unreleased 2.0.2, you have to use timeToNextPoll. Use -->
<!-- disconnectedTime from 2.0.2 onward. -->
<param-name>timeToNextPoll</param-name>
<param-value>1000</param-value>
</init-param>
即不需要对web.xml进行配置,默认就是采用这种技术实现反向ajax
但是要在jsp文件中加上以下代码:
<input type="button" onClick="RemoteClass.startPolling();">
分享到:
相关推荐
5. **第5章:DWR中的JavaScript简介** - 介绍了在DWR中使用JavaScript的方法,包括简单的回调函数和调用元数据对象等。 #### 第1章:DWR入门 - **1.1 简介** - 简要介绍了DWR的概念和优势,以及为何选择DWR作为...
在反向Ajax中,服务器不是等待客户端请求,而是主动向已连接的客户端发送数据。 4. **Comet技术**: Comet是一种实现服务器推的技术策略,它通过长时间保持HTTP连接来实现实时通信。在DWR中,可以使用Comet技术来...
**DWR(Direct Web Remoting)技术是一种在Web应用程序中实现AJAX(Asynchronous JavaScript and XML)通信的方法,它允许JavaScript直接调用Java方法,从而实现在不刷新整个页面的情况下更新部分网页内容。...
在Hibernate中,我们可以在HQL或Criteria查询中添加OrderBy子句,或者在DWR调用的Java方法中动态设置排序字段和方向。DWR会将排序参数传递给后端,后端根据这些参数生成排序后的数据并返回给前端。 五、批量操作 ...
Direct Web Remoting (DWR) 是一个开源的Java框架,专为增强Web应用程序中的Ajax功能而设计。DWR使得在浏览器端的JavaScript可以直接调用服务器端的Java方法,简化了客户端与服务器端的通信,提高了用户体验。这个...
AJAX 技术的基本原理是使用 JavaScript 对象 XMLHttpRequest 与服务器进行异步通信,实现用户从请求/响应的循环中解脱出来。AJAX 技术还具有与服务器异步通信的功能,从而使用户可以在用户单击按钮时,利用 ...
Ajax 的未来发展方向包括: * Rich Internet Applications (RIA) * Web 2.0 * cloud computing 这些技术将继续推动 Ajax 的发展和应用。 六、学习 Ajax 的方法 学习 Ajax 的方法包括: * 了解 Ajax 的技术细节 ...
从DWR框架的便捷性到JSON的高效数据交换,再到Web2.0的创新理念,AJAX及其相关技术正引领着互联网向更加智能、互动和个性化方向发展。随着Web技术的不断进步,未来我们有理由期待更多创新的应用和体验。
在当今高度互联的世界中,网页应用已经远远超越了传统的静态页面模式,而向着更加动态、实时的方向发展。AJAX(Asynchronous JavaScript and XML)作为一种核心技术,在这一过程中扮演着举足轻重的角色。通过本指南...
- **DWR验证框架**: DWR(Direct Web Remoting)是一个简化Ajax开发的框架,可以将服务器端的Java方法直接暴露给JavaScript调用。本文档中的示例并未直接使用DWR框架,但可以通过结合DWR来进一步优化用户体验,例如...
1. 数据获取与处理:JavaScript通过AJAX技术与服务器交互,实时获取DWR站的最新数据,然后进行解析和格式转换,以便进一步渲染。 2. 实时更新:利用定时器功能,每隔10到15秒自动请求新的数据,确保用户看到的图像...
- **DWR的Ajax及ReverseAjax**:通过DWR实现了客户端与服务器之间的双向通信,增强了用户体验。 - **ExtJS的EditGrid与DB交互**:利用ExtJS的EditGrid组件实现了表格编辑功能,并通过后台数据库进行数据存储。 - **...
对Jsp/Servlet/JavaBean和SSH集成框架和ajax的知识点做了概括性的总结.其中包括理论知识和部分代码.
掌握JS、DOM/DHTML编程,能使用DWR和jQuery等AJAX框架。熟练运用Struts2框架,能与其他轻量级框架SSH(MyBatis、Hibernate、Spring)配合开发。理解Spring的IOC和AOP设计思想,能够进行Web系统的声明式事务管理和...
熟练掌握常见的Ajax框架(如Dojo、ExtJS、DWR、GWT、Prototype、jQuery等)。 - **RIA方向**:拥有多年的Flex项目经验,精通Flex体系架构及与服务器端的多种通信方式;熟悉Cairngorm、PureMVC等常见Flex MVC框架;...
深入Web编程,研究Ajax实现异步通信,熟悉XMLHttpRequest对象,使用常见的Ajax库如Prototype、JQuery和DWR。同时,结合HTTP协议理解Ajax库的设计。 Java EE框架是开发企业级应用的关键。开始接触Struts1和Struts2,...