基于DWR的正向和逆向Ajax技术研究及应用(3)
时间:2018-06-06 21:54 来源:毕业论文 作者:毕业论文 点击:次
2.1 “服务器推”技术 随着技术发展实现服务器推送技术大体有两类: 1、 一种是需要在浏览器安装插件,基于socket传送消息,或者是使用RMI、CORBA进行远程调用[25]。有下面几种方式: (1) 传统轮询。浏览器在设置一个计数器,在指定的时间之后重新装载页面,通过meta标签刷新实现。 优点:服务器端不需要相关配置 缺点:使用者体验差,服务器负担较大 (2) Ajax轮询。Ajax一般利用javascript中setTimeout函数隔一段时间就向服务器询问是否有新的信息,进而达到更新的作用。 优点:服务器端不需要相关配置 缺点:服务器负担较大,实时性查 (3) Comet。这是一种长连接机制,由浏览器主动发起请求,但服务器端以一种好像很缓慢的方式做出相关应答。在这段时间内,服务器将浏览器要接受的信息主动发送过去,因此一旦有了新的 数据,客户端就能够即时收到。 优点:实时性好,性能好 缺点:长期连接 (4) flash xml socket。Flash有提供XMLSocket类或者javascript和Flash结合。 优点:实时性好,性能好 缺点:XMLSocket不能自动穿过防火墙 2、另外一种是基于HTTP长连接而不用像前一种方式一样安装插件,比较方便。 DWR技术采用长连接机制: 1、 长连接机制有两种方式“拉”和“推”:一种是通过客户端发送请求来获取服务器后台数据方式叫做“拉”;而另一种是服务器端主动向客户端“推”送数据; 2、 逆向Ajax实现了服务器推技术,主要在B/S模式下从服务器主动向客户端推送数据的一种技术。DWR逆向Ajax包括主动模式(polling和comet)和被动模式(piggyback): (1) polling:类似于页面设定计数器发送Ajax请求,查询服务器后台是否更新数据。 (2) comet:当服务端建立和浏览器的连接,将页面内容发送到服务器之后,对应的连接并不关闭,只是暂时挂起。如果服务器还有什么新的内容需要推送到客户端的时候直接通过前面挂起的连接再次传送数据。 (3) piggyback: 服务器有什么数据要推送到客户端某页面,需要等到该页面进行下一次Ajax请求时候,将数据附加到请求中,然后才传回到页面。 系统功能需求中要求服务器接收到用户发送的紧急消息之后,能够及时将消息推送到到客户端的值班人员或管理人员,按照传统的Web浏览器需要设置一个计数器定时轮询服务器来获取更新的数据或消息,而采用DWR(逆向的Ajax)就能够使服务器主动将消息推送给对应的Web客户端。 DWR,Direct Web Remoting,是一组Java库,使服务器端Java代码与浏览器端的JavaScript代码之间,以尽可能简单而安全的方式实现两者间的相互调用。DWR支持正向Ajax和逆向Ajax。正向Ajax是客户端javascript调用服务器Java代码,而逆向Ajax(reverse Ajax)就是服务器端Java代码以一种透明方式调用客户端JavaScript代码的一种技术。该技术有助于我们实现从服务器到指定客户端的代码调用和数据同步以及消息的推送。它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样。 图P1[9]显示DWR如何改变选择列表的内容作为一些JavaScript事件的结果。这个简单例子也反映出DWR工作原理:客户端浏览器传消息给服务器,服务器进行处理操作,再有服务器推送给客户端服务器。 (责任编辑:qin) |