加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

远程对象的生存周期问题(flex中的对象的生存周期和服务端的周期

发布时间:2020-12-15 01:14:28 所属栏目:百科 来源:网络整理
导读:今天写代码,突然想到了一个问题就是flex 中remoteobject 的生存周期问题。没有测试觉得应该是一样的,有时间测试一下。 还有看到一篇文章不错,全文引用下面。 来源:http://hi.baidu.com/finallygo/blog/item/fbe7c5ed2184854379f0556d.html flex+blazeDs

今天写代码,突然想到了一个问题就是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来接收就好了.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读