Dwr与Ajax的异同点

1.什么是ajax

1.它是一个客户端技术,是将原来的一些老的技术进行结合使用,产生一种新的应用。

2.可以跟任何服务端技术开发的程序进行交互。

3.ajax不是一门新的语言或者技术,只是将xml,dom,js,css等技术进行结合使用。

4.异步的交互方式。

2.ajax的执行流程

1.发出一个Http请求:通过XMLHttpRequest对象发送,在生成XMLHttpRequest对象时,要注意区分浏览器的类型(IE和非IE)

2.声明回调函数:即:指定当服务器为你的请求作出相应后,有哪个javaScript函数来处理这个响应

3.打开请求:http_request.open("GET/POST", url, true/false);

4.发送请求:http_request.send(parm);

5.接受响应:由第二步中所指定的回调函数来接受

6.处理响应数据:

1)responseText:作为文本串返回

2)responseXML:作为Xml文件返回

从这点可以看出来Ajax的一个最大的缺点:Ajax接受的响应都是"文本类型"的,需要对其进行解析,耗费大量的时间和带宽,

当响应所返回的数据比较大时,会严重的影响速度,因此,在这种情况下,最好不要使用Ajax

3.ajax的优缺点:

优点:

1、最大的一点是页面无刷新,在页面内与服务器通信,给用户的体验非常好。

2、使用异步方式与服务器通信,不需要打断用户的操作,具有更加迅速的响应能力。

3、可以把以前一些服务器负担的工作转嫁到客户端,利用客户端闲置的能力来处理

4、基于标准化的并被广泛支持的技术,不需要下载插件或者小程序。

缺点  :1.它可能破坏浏览器后退按钮的正常行为。如用户通常都希望单击后退按钮,就能够取消他们的前一次操作,但是在Ajax应用程序中,却无法这样做。

2.查询返回大量的数据的时候不适宜用ajax(ajax不适合传输大量数据)

4.为什么会出现ajax

ajax用来开发比较复杂的B/S架构的客户端。

传统的B/S架构的软件

1.同步的交互方法:请求-等待-响应式;

缺点:1.会中断用户操作。

2。如果网速慢,会出现空白的页面,对用户来说非常不友好。

3.每次响应都会把一个页面所有内容替换整个浏览器上的所有内容。

5.了解一下 AJAX 的适用场景与不适用场景

Ajax适用场景

  1.表单驱动的交互

  2.深层次的树的导航

  3.快速的用户与用户间的交流响应

  4.类似投票、yes/no等无关痛痒的场景

  5.对数据进行过滤和操纵相关数据的场景

  6.普通的文本输入提示和自动完成的场景

Ajax不适用场景

  1.部分简单的表单

  2.搜索

 3.基本的导航

  4.替换大量的文本

  5.对呈现的操纵

AJAX的核心是xmlHttpRequest,它是一种支持异步请求的技术,简而言之XmlHttpRequest使用户可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。

DWR

1.DWR(direct web remote)概念:它就是对ajax进行了封装,ajax是通过js发出请求,被Servlet拦截下来,通过Servlet来与持久层打交道,而DWR就是对这一层Servlet进行了封装,使得js可以直接调用持久层的方法。

2.简单配置:

<servlet>
        <servlet-name>dwr-invoker</servlet-name>
        <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>true</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>dwr-invoker</servlet-name>
        <url-pattern>/dwr/*</url-pattern>
    </servlet-mapping> 
<dwr>
    <allow>
            <create creator="new" javascript="test">
            <param name="class" value="com.lxit.BackControl" />
        </create>
        <convert converter="bean" match="com.lxit.Student"> </convert>
    </allow>
    <signatures>
        <![CDATA[
        import java.util.List;
        import com.lxit.BackControl;
        import com.lxit.Student;
        ]]>
    </signatures>
    </dwr> 
<script type='text/javascript' src='dwr/interface/test.js'></script>
    <script type='text/javascript' src='dwr/engine.js'></script>
    <script type='text/javascript' src='dwr/util.js'></script> 

DWR 包含2 个主要部分:

1>.一个运行在服务器端的Java

2>. 运行在浏览器端的JavaScript,它发送请求而且还能动态更新网页

Ajax与Dwr之间有什么关系?

1.Ajax是可以说是一种创建交互式网页应用的网页开发技术,实现局部刷新等功能,采用客户端脚本与 Web 服务器交换数据。

2.Dwr是一种框架,并且它是基于Ajax的基础之上,所以Ajax的功能Dwr也具有了,能够在javascript直接调用java方法,

实现局部刷新,也可以说Dwr是对Ajax的Java封装。

DWR 3.0 推技术; 以下版本是拉技术。

DWR反向异步技术(推拉技术,DWR2.0后最大的特性)

1.借鉴思想

1.1:B/S(Browser/Server)结构与C/S(Client/Server)结构最大的区别就在于:

C/S结构需要部署特定客户端,当客户端与服务端建立连接以后,服务端可以主动的与客户端进行通信;

而B/S结构只有浏览器给服务端发送请求,才能获得服务端的响应

1.2:DWR的推技术就是借鉴了C/S的思想,在B/S结构中实现了服务端主动与客户端通信,推技术的缺点就是:

当客户端过多的时候,服务器的负载会很大。

而拉技术就是普通的B/S的模式,发送请求才能获得响应

2.实现DWR推技术的三种模式

2.1:Polling(轮询)实际上是拉技术

客户端以一定的周期向服务器发送请求,看服务端是否有数据更新,如果有更新,就向服务端请求数据

2.2:Comet

客户端向服务器发送请求后,服务器将数据通过response发送给客户端,但并不会将此response关闭,

而是一直通过response将最新的数

据发送给客户端浏览器,直到客户端浏览器关闭

2.3:Piggback(回传)

服务器端将最新的数据排成队列,然后等待客户端下一次请求,接收到请求后就将更新的数据发给客户端。

时间: 2024-11-17 11:12:24

Dwr与Ajax的异同点的相关文章

dwr实现ajax学习

前一段时间看了一点dwr实现ajax的介绍信息,一直想找个机会看看到底怎么用.今天起了个早,试了一下感觉还挺好用的. 下面是我的一点学习总结: 一.配置DWR(http://getahead.org/dwr/getstarted)1.将dwr.jar包放在web-info/lib目录下2.编辑web.xml文件,添加servlet <servlet>  <servlet-name>dwr-invoker</servlet-name>  <display-name&

DWR与AJAX

DWR与AJAX的微妙关系 2015-08-14 10:20 447人阅读 评论(0) 收藏 举报 本文章已收录于: 分类: Ajax+Jquery(2) 作者同类文章X 版权声明:本文为博主原创文章,未经博主允许不得转载. DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员开发包含AJAX技术的网站.它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样. DRW就是封装后的

【DWR系列02】-DWR逆向Ajax即服务器推送

.literal { background-color: #f2f2f2; border: 1px solid #cccccc; padding: 1px 3px 0; white-space: nowrap; color: #6d180b; font-family: Consolas, "Liberation Mono", Courier, monospace; font-size: 16px } 一.简单例子直观认识 1.1 模拟场景 假定项目中需要新增一个功能,管理员发布某些信息

DWR与AJAX的微妙关系

DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员开发包含AJAX技术的网站.它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样. DRW就是封装后的ajax,ajax只是一种最原始的实现方式,就好象servlet,然dwr就好象 struts,hibernate等框架,封装了很多东西,其实底部实现原理是一样的,都是用xmlHttpRequest来实现通信的.另外传参他是通

DWR组件——基于远程过程调用实现Ajax

转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6686115.html  一:DWR的用途 DWR(Direct Web Remoting)是一个Web远程调用框架,会根据java类动态生成javascript代码. 二:DWR实现Ajax的原理 DWR是基于远程过程调用的组件,可以在浏览器端远程调用服务端的业务函数,并获取返回结果.而我们知道,浏览器端是不能直接运行Java代码的,但是可以运行JavaScript代码.DWR的作用就是:把服务端的业务函数

DWR 3 反转Ajax

1.Reverse Ajax 简介 小试身手 细粒度控制 Early Closing Mode(默认模式) Full Streaming Mode(IE不支持) Polling Mode 涉及到的一些知识 ScriptSession生命周期 non-dwr thread,非DWR线程 在non-dwr thread中获取ScriptSessionManager Browser API 附上简单的代码实现 1.Reverse Ajax 简介 反转Ajax是DWR 2.0里最大的一个新特性,让你能够

dwr学习第一天

DWR: 远程调用java代码 dwr是ajax调用应用的一种技术 使用步骤: 1.将dwr包拷到lib包中 2.配置web.xml <listener> <listener-class>org.directwebremoting.servlet.dwrlistener</listener-class> </listener> <!-- DWRServlet→来之与dwr.jar --> <servlet> <servlet-n

.atitit.web 推送实现解决方案集合(3)----dwr3 Reverse Ajax

.atitit.web 推送实现解决方案集合(3)----dwr3 Reverse Ajax 1. 原理实现 1 2. Page  增加配置,增加回调函数dwr.engine.setActiveReverseAjax(true); 1 3. Web.xml增加配置 1 4. Java代码(page法,简单) 2 5. 推荐实现方式 attribute法.. 2 6. 参考::: 2 1. 原理实现 ScriptSession ::简单的一个page url管理一个scriptsession,这个

DWR笔记

DWR笔记 一.相关信息: 1.      概述:开源框架,允许前端JS用Ajax方式调用后台Java代码.很常用很重要. 2.      原理:DWR定义了一套JS,通过JS向后台发请求,请求路径为/dwr/*,在web.xml文件中配置的DWR可以将请求发给相应的servlet,该servlet通过参数用反射机制动态调用java代码,参数配置在dwr.xml文件中. 3.      优点:开发效率高,使用框架的开发效率都非常高: 缺点:反射机制是动态加载相应的类的,所以执行效率低,但也低不到