远程对象的生存周期问题(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是这样的

  
   
  

而blazeds中如下:


  
    com.finallygo.countmoney.service.GoodsInfoService
  

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

接下来对比下两者的使用

dwr的使用是:

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

blazeDS的使用是:

在"页面"里添加

   
   

发现了没?两者的差异不大吧,但是还有有一些区别的,因为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来接收就好了.

你可能感兴趣的:(flex,dwr,actionscript,javascript,语言,properties)