远程对象的生存周期问题(flex中的对象的生存周期和服务端的周期是一样的么?)

今天写代码,突然想到了一个问题就是flex 中remoteobject 的生存周期问题。没有测试觉得应该是一样的,有时间测试一下。



还有看到一篇文章不错,全文引用下面。


来源:http://hi.baidu.com/finallygo/blog/item/fbe7c5ed2184854379f0556d.html


flex+blazeDs与Ext+dwr比较


感觉flex+blazeDs约等于Ext+dwr,为什么这么说呢?

首先flex与ext都是页面显示的技术,也就是说与后台的语言是无关的,两者的区别就在于一个页面技术的实现是基于flash player的,另一个不用,使用的语言上来说是很相似的,flex是用mxml来画控件,处理主要是通过actionscript来实现的,而ext则全部都是用javascript来实现的(实际中你会发现actionscript与javascript是十分相似的).

接下来说说他们连接后台的技术,因为我是学java的,所以就介绍连接java的了,blazeDs与dwr感觉都是充当一个中间件的角色,也就说通过这两种技术都可以直接调用后台的方法,而且你会发现这两者的相似程度也是惊人的,使用上基本是一致的.

所以说,如果你以前学的是Ext+dwr的人转flex可以说是非常轻松的,而且我发现后台的方法也基本上不需要改变,真的可以说很完美了.

下面来用例子简单的对比下两者的相似之处:

首先介绍dwr的,dwr配置一个Service是这样的

   <create creator="new" javascript="JGoodsInfoService">
    <param name="class" value="com.finallygo.countmoney.service.GoodsInfoService"/>
   </create>

而blazeds中如下:

<destination id='JGoodsInfoService'>
   <properties>
    <source>com.finallygo.countmoney.service.GoodsInfoService</source>
   </properties>
</destination>

发现了没两者是惊人的相似啊,呵呵

接下来对比下两者的使用

dwr的使用是:

在页面里添加如下的引用:

<script type="text/javascript" src="dwr/interface/JGoodsInfoService.js"></script>

blazeDS的使用是:

在"页面"里添加

<s:RemoteObject id="JGoodsInfoService" destination="JGoodsInfoService" endpoint="/BlazeDSServer/messagebroker/amf" >

    <s:method name="getUserList" result="getHandler(event)"/>
    <s:method name="saveUser" result="saveHandler(event)"/>

</s:RemoteObject>

发现了没?两者的差异不大吧,但是还有有一些区别的,因为dwr的话,方法是不需要配置的(当然你也可以配置),因为调用的方式是

someService.invoke(args,callback)式的,也就是说你在调用dwr的方法的时候就把回调函数写在后面就好了,而blazeDs中却不是这样的,它的方式是就像调用一个普通的一个对象的方法一样,那有人会问了,那处理之后的结果怎么办呢?呵呵,没看到我刚才贴的代码吗?在blazeDS中,定义RemoteObject的时候就需要对方法进行设置了,而那个result属性的值相当于dwr中的回调函数,现在明白了吗?总的来说还是很相似的.

最后说说类型转换的差异,无论是blazeDs还是dwr都是做了个语言桥梁的作用,既然是不同的语言,肯定就涉及到不同语言类型转换的问题(具体怎么转换可以参考官方文档),我这里就简单介绍下对象类型转换的问题,令人欣慰的是dwr和blazeds对于对象的处理是一样的(为什么欣慰呢,因为如果我要把原来用dwr+Ext技术的系统改成flex+blazeds的后台的代码就不需要修改了),一般来说他们都将对象转换为json格式(对于json不了解的可以把json想象成java中的map),到服务器端后再转成map,这么一来服务器端用Map来接收就好了.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值