dwr 中的方向ajax

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();">
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值