`

dwr的Reverse Ajax

阅读更多
dwr的Reverse Ajax,新瓶装老酒,其实就是comet技术,即服务端向客户端push js代码,典型的应用场景就是目前比较火的比赛图文直播,还有聊天室等,消息订阅模式的一种实现。

优点:控制权反转,打开一个网页(或进行一次操作)后,订阅了一个消息,一个客户端服务端连接将维持,服务端检测到数据更新,将自动push数据到客户端,这样服务端对于程序调动的灵活性更加大,避免了客户端大量的循环请求数据。

缺点:连接维持,访问数量一大连接数将很快饱和。

关于comet优点比较权威的阐述:Ajax improves single-user responsiveness. Comet improves application responsiveness for collaborative, multi-user applications and does it without the performance headaches associated with intermittent polling.

看一下dwr官方示例,很简单的clock实现:

html代码:
<input type="button" value="Start / Stop" onclick="Clock.toggle();"/> <h2 id="clockDisplay"></h2>

js代码就一行,打开相应属性:
dwr.engine.setActiveReverseAjax(true);
服务端clock类:

public class Clock implements Runnable {
    public Clock() {
        ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(1);
        executor.scheduleAtFixedRate(this, 1, 1, TimeUnit.SECONDS);
    }

    public void run() {
        if (active) {
            setClockDisplay(new Date().toString());
        }
    }

    /**
     * Called from the client to turn the clock on/off
     */
    public synchronized void toggle() {
        active = !active;

        if (active) {
            setClockDisplay("Started");
        }
        else {
            setClockDisplay("Stopped");
        }
    }

    /**
     * Actually alter the clients.
     * @param output The string to display.
     */
    public void setClockDisplay(final String output) {
        String page = ServerContextFactory.get().getContextPath() + "/reverseajax/clock.html";
        Browser.withPage(page, new Runnable() {
            public void run() {
                Util.setValue("clockDisplay", output);
            }
        });
    }

    protected transient boolean active = false;
}


个人设想:这个特性可以用来远程实时监控服务器运行状态,服务端自定义调用接口,定义一套xml协议来实时传送数据,也可以利用Web Service。
PS文章推荐(扩展大量同步连接的技术):使用 Jetty 和 Direct Web Remoting 编写可扩展的 Comet 应用程序 url:http://www.ibm.com/developerworks/cn/java/j-jettydwr/
定义comet的文章:http://alex.dojotoolkit.org/2006 ... ta-for-the-browser/
分享到:
评论

相关推荐

    即时通讯DWR Reverse Ajax

    DWR(Direct Web Remoting)是实现这种功能的一种技术,尤其以其独特的Reverse Ajax特性在服务器推送(Server-Sent Events, SSE,也常被称为Comet技术)领域中备受关注。下面我们将深入探讨DWR Reverse Ajax的工作...

    dwr reverseajax clockms

    dwr reverseajax clockms

    dwr reverseajax ClockLogging

    dwr reverseajax ClockLogging

    DWR REVERSEAJAX DEMO

    Server Side Reverse Ajax Clock

    dwr3ReverseAjax示例

    在这个“dwr3ReverseAjax示例”中,我们将深入探讨如何利用DWR 3.x版本来构建一个基于Ajax的简单Web聊天应用。 首先,DWR的核心功能是通过HTTP协议实现在客户端JavaScript和服务器端Java之间的远程方法调用(Remote...

    dwr 2.0(reverse ajax)实现推的web IM例子

    在DWR 2.0版本中,引入了Reverse Ajax的概念,这是一种服务器主动向客户端推送数据的技术,这对于构建实时的Web应用程序,比如Web IM(即时通讯)应用,非常关键。 在这个例子中,我们将探讨如何利用DWR 2.0实现一...

    Dwr 官方Reverse Ajax Demo

    DWR是基于AJAX技术的,但其提供了更高级的功能,如Reverse Ajax和自动类型转换,使得开发者可以更专注于业务逻辑,而无需过多关注底层通信细节。AJAX主要负责局部页面更新,而DWR则扩展了这一概念,使得服务器可以...

    DWR让Ajax如此简单

    - **Reverse Ajax(反向Ajax)**: DWR实现了反向Ajax,即服务器可以主动推送数据到客户端,而不仅仅是响应客户端的请求。 - **Caching(缓存)**: DWR支持缓存服务器端的响应,提高性能,减少网络流量。 ### 2. ...

    DWR的推技术

    在DWR 2.x版本中,引入了推技术,即所谓的“Reverse Ajax”,这是一种在BS(Browser/Server)架构中,让服务器主动向客户端推送数据的技术,以实现实时或近乎实时的数据更新,而无需页面刷新。 #### 二、Reverse ...

    dwr的几个小例子,dwr的几个小例子

    DWR提供了一个内置的调试工具——DWR Reverse Ajax Console,它可以帮助开发者查看和测试远程调用,便于调试和问题定位。 通过以上知识点,我们可以了解到DWR如何在Web应用程序中实现前后端的无缝交互。不过,实际...

    使用DWR开发AJAX For J2EE

    - **反向AJAX (Reverse AJAX)**:DWR的核心是反向AJAX,即服务器主动推送数据到客户端,而不是传统的客户端发起请求获取数据。 - **远程调用 (Remote Method Invocation)**:DWR允许JavaScript直接调用服务器上的...

    dwr demo ajax

    - `WEB-INF/web.xml`:Web应用的部署描述符,其中会配置DWRServlet,指定DWR的初始化参数,如`dwr.engine.reverseAjax`和`dwr.engine.debug`等。 - `dwr.xml`:DWR的核心配置文件,定义了哪些Java类和方法可以被...

    DWR AJAX框架(包含使用教程)

    - **Reverse Ajax**:DWR的特色功能,使得服务器可以直接调用客户端的JavaScript函数。 3. **DWR的使用步骤** - **配置DWR**:在web.xml中配置DWRServlet,以及在dwr.xml中定义允许的远程Java类和方法。 - **...

    dwr2 资料

    DWR提供了丰富的开发工具,如DWR Reverse Ajax Console,用于测试和调试DWR应用程序,还有DWR Generator,用于自动生成JavaScript接口代码。 10. **可扩展性**: DWR 2设计为高度可扩展,允许开发者通过插件或...

    Ajax框架:简单的dwr实例

    1. **Reverse AJAX**:DWR的核心特性之一是反向AJAX,即服务器主动向客户端推送数据,而不仅仅是响应客户端的请求。这使得用户界面可以实时更新,提高了用户体验。 2. **JavaBeans与JavaScript对象映射**:DWR自动...

    DWR框架 AJAX

    1. **Reverse Ajax**:DWR的核心特性之一是实现了Reverse Ajax,即服务器可以主动向客户端推送数据,而不仅仅是响应客户端的请求。这种技术打破了传统的Web交互模式,提高了用户体验。 2. **Remote Method ...

    AJAX框架DWR简单应用

    6. **实时更新**:DWR的Reverse AJAX特性使得服务器能够主动推送数据到客户端,实现了双向通信,常用于聊天、股票报价等实时应用。 7. **易于集成**:DWR可以轻松地与现有的MVC框架(如Spring MVC)集成,同时支持...

    AJAX DWR教程

    - **Reverse AJAX Servlet**: DWR自动配置的Servlet,接收来自JavaScript的请求,并调用相应的Java方法。 - **Auto-Discovery**: DWR可以自动发现Java类中公开的方法,并暴露给JavaScript使用,只需要简单的注解...

    java 采用dwr框架构实现ajax

    2. **Reverse Ajax Engine**: 实现JavaScript到Java的调用,以及Java结果的回传。 3. **Script.aculo.us Integration**: 提供与流行的JavaScript库(如jQuery或Prototype)的集成。 **六、DWR的安全性和优化** DWR...

Global site tag (gtag.js) - Google Analytics