Home  >  Article  >  Backend Development  >  atitit.php中的dwr 设计模式

atitit.php中的dwr 设计模式

WBOY
WBOYOriginal
2016-06-23 13:31:07941browse

atitit.php中的dwr 设计模式 

 

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

2. DWR工作原理 1

3. php的dwr实现 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

 

 

3. php的dwr实现

 

 

<script></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

 

 

 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

版权声明:本文为博主原创文章,未经博主允许不得转载。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn