Dwr与Ajax的异同点
发布时间:2020-12-16 00:21:33 所属栏目:百科 来源:网络整理
导读:1.什么是ajax 1.它是一个客户端技术,是将原来的一些老的技术进行结合使用,产生一种新的应用。 2.可以跟任何服务端技术开发的程序进行交互。 3.ajax不是一门新的语言或者技术,只是将xml,dom,js,css等技术进行结合使用。 4.异步的交互方式。 2.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(回传) 服务器端将最新的数据排成队列,然后等待客户端下一次请求,接收到请求后就将更新的数据发给客户端。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- arcgis api for flex 开发入门(一)环境搭建
- [monitoring] how to create script to monitoring the sta
- Cocos2d-X中使用CCHttpClient实现网络通信
- AJAX 跨域访问 — 示例代码方法大全
- 构建一个简单的react-typescript项目
- c – 使用命名空间重新定义错误
- objective-c – 调试器lldb说我的对象是不是什么时候不是?
- How to create XML validator from XML schema?
- flexigrid使用记录
- cocos2d-x getBoundingBox getContentSize getTextureRect