dwr提供了3中方向ajax
1、轮询
2、comet
3、piggybacking
轮询就是客户端轮询服务器,看是够存在更新,并且显示新信息
comet 持续的服务器连接,长时间的连接,服务器过载和用完请求处理进程
piggybacking,服务器会进行队列响应,并在客户端的下一个请求中进行发送
不会给服务器增加负担
代码实现:
轮询:
1、对dwr servlet进行一些配置
2、在页面中,还需要一些JavaScript代码
dwr.engine.setActiveReverseAjax(true);
只需要上述代码和web.xml中的配置,就可以激活反向ajax
如何处理这些轮询请求:
通常在服务器端编写一些代码,以更新附加到服务器端的每个客户端的会话。
dwr会记录与之联系的每个客户端,分别存储每个客户端的会话。。借助于此
可以调用JavaScript代码,下一个轮询请求会通知这些调用
如果不希望使用轮询方法,那么非常容易地切换成comet方法
只需要吧web.xml如下代码去掉即可
如果要启动piggybacking技术,只需要从web.XMl文件删除一下代码:
即不需要对web.xml进行配置,默认就是采用这种技术实现反向ajax
但是要在jsp文件中加上以下代码:
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();">