DWR2.x推技术详解:主动模式与被动模式
需积分: 3 35 浏览量
更新于2024-09-15
1
收藏 84KB DOC 举报
"DWR的推技术"
DWR (Direct Web Remoting) 是一个开源的Java库,它允许JavaScript和Java在Web应用中进行实时通信,实现了Ajax的功能。DWR的推技术,即DWR Reverse Ajax,是服务器端向浏览器端推送数据的一种方法,无需用户进行任何操作,可以实现实时的数据更新,提升用户体验。
DWR2.x版本的推技术主要有三种实现方式:
1. **Piggyback方式**:
这是DWR的默认模式。在Piggyback模式中,服务器端只有在接收到客户端的Ajax请求时才会推送数据。当页面进行下一次Ajax请求时,服务器会将等待推送的内容附加在响应中返回给客户端。这意味着数据的更新依赖于客户端的定期请求,因此可能延迟更新。
2. **Comet方式**:
Comet技术是一种持久连接的方式,服务器与客户端建立连接后,保持连接不关闭,而是在有新数据时立即通过这个连接将数据推送给客户端。这种方式能实现即时更新,但缺点是可能会占用大量服务器资源,因为连接一直保持打开状态。
3. **Polling方式**:
定时轮询(Polling)是客户端定期向服务器发送Ajax请求,询问是否有新数据。如果有,服务器会在响应中包含这些数据。虽然不如Comet实时,但对服务器资源的需求相对较低,因为不需要保持大量连接。
使用DWR的推技术通常涉及以下步骤:
1. **配置DWR**:
在`web.xml`中添加DWR的Servlet配置,如示例代码所示。`<servlet-class>`指定为`uk.ltd.getahead.dwr.DWRServlet`,并设置参数`debug`来开启调试模式。
2. **创建Java类**:
在服务器端定义Java类,这些类的方法会被暴露给JavaScript调用。这些方法通常用于处理数据的更新和推送。
3. **编写JavaScript**:
在客户端,使用DWR的API来注册服务器端的方法,并监听推送事件。当有新数据可用时,DWR会自动调用预先注册的方法,将数据传递给JavaScript。
4. **实现推送逻辑**:
根据需求选择合适的数据推送模式(Piggyback、Comet或Polling),并在服务器端实现相应的逻辑,例如在数据变更时触发推送。
5. **安全与优化**:
考虑到性能和安全性,可能需要对连接数量、超时时间等进行适当设置,防止服务器过载。
通过DWR的推技术,开发者能够构建更动态、实时的Web应用,无需刷新页面即可获取服务器的最新信息,提升了交互性和用户体验。然而,需要注意的是,持续的连接可能会对服务器性能造成影响,因此在设计时需要平衡实时性与资源消耗。
103 浏览量
116 浏览量
2012-05-29 上传
2011-05-05 上传
2010-07-30 上传
133 浏览量
2010-09-20 上传
142 浏览量
176 浏览量
浪子尘晨
- 粉丝: 118
- 资源: 79
最新资源
- 51单片机汇编程序-LED点阵实现简易俄罗斯方块游戏
- wormhole-0.7.0.tar.gz
- random-starred-repository:返回由用户加注星标的随机存储库
- File_Hunter:使用文件玩俄罗斯轮盘! :))
- CSS3灯光闪烁动画文字特效特效代码
- MyBlog:这是一个基于SSM的博客系统
- Sweet Puzzle Time-crx插件
- crbclientregisterand:CRB 客户端注册和。 是一个 android 客户端,它从 android 捕获客户端详细信息并通过restful web 服务将其持久化到 CRB 客户端注册播放框架应用程序
- gRPC中Java和node进行异构通信-互为客户端和服务端示例代码.rar
- Briefwechsel.github.io
- react_spotify:React我们Spotify Stats应用程序的一面
- semantic_logger:Semantic Logger是功能丰富的日志记录框架,可替代现有的Ruby&Rails记录器
- lablabtop
- rest-api-springboot
- 测试工程师学习路线.zip
- MozStumbler:适用于Mozilla的Android Stumbler