atitit.php中的dwr 设计模式

atitit.php中的dwr 设计模式 

 

1. dwr的优点相对于ajax来说。。 1

2. DWR工作原理 1

3. phpdwr实现 1

4. 参考 3

 

1. dwr的优点相对于ajax来说。。

dwr是构建在ajax上的。。更加的dsl化。。

大大简化了编写ajax的工作量。 

 

 

2. DWR工作原理

是通过动态把Java类生成为Javascript。它的代码就像Ajax一样,你感觉调用就像发生在浏览器端,但是实际上代码调用发生在服务器端,DWR负责数据的传递和转换。这种从Java 到JavaScript的远程调用功能的方式使DWR用起来有种非常像RMI或者SOAP的常规RPC机制,而且DWR的优点在于不需要任何的网页浏览器插件就能运行在网页上。 

Java从根本上讲是同步机制,然 AJAX却是异步的。所以你调用远程方法时,当数据已经从网络上返回的时候,你要提供有反调 (callback) 功能的DWR。 

 

DWR在客户端放置了一个 engine.js作为客户端的引擎,在Server端放置了一个dwr.jar作为服务器端的引擎。 

然后,可以以RPC的方式来描述

 

作者:: 老哇的爪子 Attilax 艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://blog.csdn.net/attilax

 

 

3. phpdwr实现

 

 

<script type="text/javascript" src="../com.attilax/dwr.js"></script>

var mp={};

// mp.id=85495; frm cookie   

mp.method="get-score";

dwrC.exec(mp,function(data){

//if ex then to ex process hadler

/* if(data)

alert("不能编辑,已经审核通过");

else

window.location.href="elemt_edit.jsp?id="+str;*/

$("#score").text(data+"");

$("#score-detail").text( "您的育儿指数总算及格了,还要继续....");

 

},"/lime");

 

 

 

--------------dwr.js

var dwrC={};

dwrC.exec=function(param,callback,approot)

{

//jQuery.get("dwr.php?param="+param, [data], [callback])

$.ajax(

                    {

                        type: "get",

                        url: approot+"/com.attilax/dwr.php",

                        data:param,

                        dataType: "text",

                        success: function(data) {

                          //  $("#divShow").html(data);

  callback(data);

                     }

 });

}

 

-------------dwr.php

 <?php 

 

 require_once(dirname(__FILE__).'/../iocx.php');

 

//$dwrEventContainer['b'] = 'char b'; 

 

 

 $method=   $_GET['method']; 

 $fun=$dwrEventContainer[ $method];

 $rzt=$fun($method);

 echo $rzt;

 

 

 ?>

 

 

 

------------iocx.php

$dwrEventContainer = array(); //定义一个数组

$dwrEventContainer['get-score'] =getScoreX;

 

 

4. 参考

DWR 工作原理 - ITeye问答.htm

posted @ 2015-07-10 21:19  attilaxAti  阅读(169)  评论(0编辑  收藏  举报