Ajax 之DWR发布说明(试翻译)

Posted on 2006-05-14 02:32 Computerboy 阅读(3008) 评论(3)  编辑  收藏 所属分类: 编程技术

说明:这个发布说明是我试翻译的,由于水平有限,错误再所难免!
原文地址:http://getahead.ltd.uk/dwr/changelog/dwr20m1
DWR现在已经发布了2.0的milestone 2 了。我现在翻译的是milestone 1
由于我要出差,所以这个翻译是一个草稿
欢迎朋友们提出指正
我的MSN:zhang_2958@hotmail.com




DWR 发布说明

DWR 2.0版本 是1的里程碑


这是我们在新特性方面的最大发布!
反向的AJAX
最大的特性是我们成为反向的Ajax。DWR1.x允许你用javascript异步的访问java代码。
DWR2.0在这上允许你建立异步java访问javascript代码。
反向的Ajax使你编写应用程序更容易得多。

 It can use polling or Comet(long-lived HTTP)queries.
我们的‘聊天室’例子包含这样一段java代码:

----

//Get the current page --得到当前的页

WebContext wctx=WebContextFactory.get();
String currentPage=wctx.getCurrentPage();

// 'messages' is a List of recent messages for a browser to display
// Java objects converted to Javascript hava a declarating and a declared

///variable name.
OutboundVariable ov=wctx.toJavascript(messages);
//Loop over all the users on the current page

for(ScriptSession otherSession:wctx.getScriptSessionsByPage(currentPage)){
     otherSession.addScript(ov.getInitCode());
     otherSession.addScript("receiveMessages("+ov.getAssignCode()+");");
   //receiveMessages is a Javascript function that displays the current list of 
     ///messages
  }

----

在本质上我们发送一些javascript循环所有用户在当前页上更新并显示他们。
javascript更简单。你可以启用轮流(轮询)检测这种查询方式。

----

DWREngine.setPolling(true);

----

聊天室例子(在WAR包里下载)包括javascript源码 到 receiveMessages() 是使用

DWRUtil的4路线路(线程)将信息显示到屏幕上。 ????
其它这技术的用法包括酒吧,游戏在线,售票和任何的系统在何处服务器状态变化,
我们需要把更新发布到浏览者或者浏览器上。


跨领域 Ajax:<script> 标签(tag)操作   
如果你需要访问不同的领域服务器 我们的遥远(remoting)计划已成为可能。
从DWR2.0你可以操作<script>标签(tags)增加在XMLHttpRequest 或 iframes.
对于使用你需要做如下:

----
DRWEngine.setMethod(DWREngine.ScriptTag);
----

<signatures>(签名)元素(Element)
DWR1.0有时需要一个<signatures>元素(Element)帮你它得到一个类型转换。
如果你用DWR2.0同JDK5 此时一般的类型你就不要使用更多的<signatures>
DWR将自动调用类型转换。


DWRUtil 更新
我们已更新DWRUtils.有一种新的DWRUtil.cloneNode(elementID)方法
你可以重复使用HTML片段作为模板。
例如:

----
// Loop over all the beans
for(var i=0;i<beanArray.length;i++){
   //Fill in the blanks in the template. You will have several lines like this.
   DWRUtil.setValue("someid",beanArray[i].property);
   //Clone the node so we don't overwrite it next time
   DWRUtil.cloneNode("template");
  }
 //Finally hide the template
  $("template").style.display="none";

----

我们也尝试着写一些的取值的的更新。如果其值为假的话,将返回false(假).
这有可能破坏反向的兼容性。
它是轻微非明显依赖你的观点,我们需要关于这样的反馈。

新的属性作用域(Scope)--脚本(Script)
有一个新的作用域。
Servlet与JSP开发者熟悉设置属性在一次请求,页面,会话,或者应用水平。
DWR2.0允许你使用"script"(脚本)作用域。
脚本作用域在单一页面内,Ajax应用能持续使用变量。


脚本作用域其long-lived 有一点像会话作用域,然而它不要cookies(甜点).脚本作用域

属性在单一页面内,任何Ajax操作都是可用的。
创建dwr.xml它是可用的。

----
<create creator="new" javascript="Test" scope="script">
   <param name="class" value="com.example.Test"/>
</create>

----

脚本作用域也同样可用于 programatically:

----
WebContextFactory.get().getScriptSession().setAttribute("key",value);
----

例子(Example)

开始下载DWR2.0 压缩文件时会比以前有一些大因为我们包括一些例子。
我们从事简单的struts 和 Spring 整理演示。


Refactoring(重用)这个词我叫不准。是应该是重载的呢还是重构。大家可以告诉我!

 在开发者眼中,重用是一个特性,因为代码整洁。
但是它也是导致用户向后兼容性问题的原因。
我们为DWR2.0做了一些重用。但是这里是用户剔除它:
我们使用 org.directwebremoting.* 包 代替模糊的uk.ltd.getahead.dwr.*,
由于兼容性差,我们已经抛弃存根(stubs).
如果我们有所遗漏,请告诉我们。我们也试图使DWR成为可嵌入的。

同时,如果现在创建像SOAP或者JSON-RPC一样的预备的协议应该是可能的!


呼叫集合数据(Call Meta-data)
你能像这样使用DWR传递请求属性呼叫集合数据:

----
Remote.getData(42,{
   Callback:function(str){alert(str);},
   customKey:"Fred",
});

----
java 在HttpSevletRequest 中额外的集合数据是可用的。如下代码将返回字符串"Fred":

----
WebContextFactory.get().getHttpServletRequest().getAttribute("customKey");

----

其它事项

虽然我们已经删除了deprecated.js,但是有人竟然还能够注意到,对此我十分怀疑。在

DWR9.0版本出现时,它已经不能满足需求了。


安全和稳定

我们十分慎重的对待安全。DWR1.X 到迄今为止是十分安全的,但是,那不意味着我们停止

在我们的荣誉上。
DWR2.0介绍许多新的代码。反向的AJAX和脚本为基础的会话管理是疏忽(slip up)的地方

此外,里程碑1,反向的ajax将在你的webserver 上创建一些较多的加载,比老版本稳定。
我们已得到2个答案--设计允许服务器加载监控和动态back-off。


更令人激动的是,我们正与Mortbay一起努力,使DRW能够运用Jetty6的持续性,如果可行的话,可以满足长期HTTP的请求而不冒资源匮乏风险。


因此,在这之前,请不要使用DWR2.0在开发系统,直到我们有更多的测试和检查。


未来版本

这是一个令人兴奋的第一个里程碑,我们将在未来数周内推出.
我们将得到更多东西!


下载
你可以下载DWR2.0 M1
下载地址:
http://getahead.ltd.uk/dwr/download

 

Feedback

# re: Ajax 之DWR发布说明  回复  更多评论   

2006-05-14 11:01 by netfishx
也忒不通顺了把

# re: Ajax 之DWR发布说明(试翻译)  回复  更多评论   

2006-05-14 15:55 by 绿色使者、绿色心情
应该是代码重构,还有排版和代码也应该整理一下的

# re: Ajax 之DWR发布说明(试翻译)  回复  更多评论   

2007-06-21 15:55 by ss
ee

只有注册用户登录后才能发表评论。


网站导航:
 

posts - 40, comments - 39, trackbacks - 0, articles - 0

Copyright © Computerboy