DWR反向Ajax:轮询、Comet与PiggyBack解析
3星 · 超过75%的资源 需积分: 10 150 浏览量
更新于2024-09-26
收藏 195KB DOCX 举报
"本文主要介绍了DWR(Direct Web Remoting)框架中反向Ajax的三种技术实现:轮询、Comet和PiggyBack,并详细阐述了每种方式的工作原理和特点。此外,还提到了DWR的active和passive两种工作模式,以及在active模式下的FullStreamingMode、EarlyClosingMode和PollingMode。"
DWR是一种Java框架,它允许Web应用实现实时的双向通信,即服务器端能够主动地向客户端推送数据,而不仅仅是响应客户端的请求。反向Ajax是DWR的核心特性,它提供了以下三种技术来实现服务器到客户端的数据推送:
1. **轮询(Polling)**:
轮询是最基础的反向Ajax技术。客户端定时(如每隔几秒)向服务器发送请求,询问是否有新数据。如果有,服务器则返回数据,否则客户端继续等待下一个轮询周期。这种方式简单易用,但效率较低,因为频繁的请求可能导致网络带宽浪费和服务器压力增大。
2. **Comet:基于HTTP长连接的服务器推动**:
Comet技术通过保持一个长时间打开的HTTP连接,使服务器能够在数据准备好时立即推送到客户端。客户端发起请求后,服务器不关闭响应,而是持续发送更新数据。Comet提供实时性更强的通信,但可能会消耗更多服务器资源,尤其是当连接数过多时。
3. **PiggyBack(回传)**:
PiggyBack机制是在客户端发出请求时,服务器将积压的更新数据一并返回。这种方式在客户端不频繁请求时效率较高,能有效利用已有请求,减少网络开销。然而,它不具备实时性,只有在客户端触发请求时才能获取更新。
DWR中的reverseAjax分为active和passive两种模式。默认情况下,DWR采用passive模式,即PiggyBack机制。在active模式下,DWR支持Comet和Polling,以实现数据的及时响应。
- **active模式**包含三种子模式:
- **FullStreamingMode**:这是active模式的默认设置,类似于Comet,服务器保持连接状态并定期检查浏览器是否活跃。通过在`web.xml`配置和在页面上设置`dwr.engine.setActiveReverseAjax(true)`来启用。
- **EarlyClosingMode**:与FullStreamingMode类似,但如果没有新的响应,连接会在1分钟后关闭。最大等待时间可通过`maxWaitAfterWrite`参数调整,默认60秒。
- **PollingMode**:在这种模式下,客户端和服务器间不是持续连接,而是按需进行轮询。
需要注意的是,active模式可能导致服务器资源紧张,DWR有内置机制来管理连接数量,当服务器负载过高时,会自动调整连接策略。然而,对于大规模并发用户场景,应谨慎使用active模式,以防止服务器过载。
DWR提供了丰富的反向Ajax解决方案,开发者可以根据实际需求选择合适的策略,实现高效的服务器到客户端数据推送。
2021-01-20 上传
2014-11-18 上传
2020-11-06 上传
2017-10-16 上传
2019-07-28 上传
2010-06-13 上传
2018-12-20 上传
2008-11-28 上传
craz109
- 粉丝: 0
- 资源: 1
最新资源
- 前端面试必问:真实项目经验大揭秘
- 永磁同步电机二阶自抗扰神经网络控制技术与实践
- 基于HAL库的LoRa通讯与SHT30温湿度测量项目
- avaWeb-mast推荐系统开发实战指南
- 慧鱼SolidWorks零件模型库:设计与创新的强大工具
- MATLAB实现稀疏傅里叶变换(SFFT)代码及测试
- ChatGPT联网模式亮相,体验智能压缩技术.zip
- 掌握进程保护的HOOK API技术
- 基于.Net的日用品网站开发:设计、实现与分析
- MyBatis-Spring 1.3.2版本下载指南
- 开源全能媒体播放器:小戴媒体播放器2 5.1-3
- 华为eNSP参考文档:DHCP与VRP操作指南
- SpringMyBatis实现疫苗接种预约系统
- VHDL实现倒车雷达系统源码免费提供
- 掌握软件测评师考试要点:历年真题解析
- 轻松下载微信视频号内容的新工具介绍