Flex框架Riawave应用以及对AJAX开发框架的思考

Jbpmside要使用Flex开发流程设计器以及管理器,刚好公司的一个内部项目也应用到Flex,大概花了一个礼拜来熟悉和了解Flex。其中发现Flex开发和AJAX开发的很多相通之处,这里把自己对Flex的一些学习心得总结一下。分为三部分,分别是对Riawave框架的介绍、参照Riawave,对自己先前采用的AJAX开发框架的介绍、以及对AJAX前景的一些自己看法。

一、Flex框架Riawave的定制应用

Flex有很多开发框架,最有名的是Cairngorm。但是Cairngorm太复杂了,职责的细粒度分离带来的是过多的类和代码,不太适合中小项目。这里我们采用了Riawave,准确的说Riawave并不是一个框架,它只是一个通讯录管理的简单代码示例,它包含了很多的最佳实践。这里想说一点,就是很多时候采用某种技术起决定因素的往往不是技术本身是否先进,而是看该技术的使用者是否众多。

Riawave将应用程序拆分成三部分,分别是Views、ModelLocator、DAO。

Views指的是应用里的页面组件,例如表格、表单、菜单等。它的职责:1、组成整个应用的界面;2、对组件内部的原生事件进行处理,这些事件指发生在该组件里的鼠标事件和键盘事件;3、当需要其他组件进行协作时,发布定制事件;4、对其所关联的数据进行操作;5、监听其他组件发布的与之相关的定制事件,并做出展现形式上的改变。

ModelLocator是整个应用的核心。

它的职责:

1、集中存储应用的所有数据;

2、给页面组件提供统一的定制事件监听器接口,即所有的页面组件要对其他组件的定制事件监听则必须通过ModelLocator来进行订阅;

3、唯一的定制事件发布接口,即任何页面组件要发布自己的定制事件都必须通过ModelLocator发布;

4、集中维护所有定制事件的类型。ModelLocator是单态的,通过ModelLocator,应用程序所有的定制事件都被统一管理。

DAO负责操作应用的数据。

它的职责:

1、改变应用的数据,提供应用数据修改的统一接口,即用户操作页面组件改变数据时,实际上是由页面组件转发给DAO处理;

2、远程访问服务端,Flex通常作为应用程序的前端展现出现,和AJAX一样,数据的操作要和服务器端进行交互;

3、服务器端返回正确的操作结果后,改变ModelLocator里的数据,发布定制事件,触发相应页面组件改变。

可以看到,整个Flex应用完全是由事件驱动的。

其他需要了解的部分:

1、Flex的Data Binding机制,这个机制实际也是由事件发布/订阅机制实现的,它可以省去自己编写重复的定制事件发布/订阅代码,实现组件展现数据与ModelLocator的数据同步;

2、VO,本地的数据建模、用途:发布定制事件时,通过VO携带组件数据,VO被包含在事件里;传递数据到DAO。

时间: 2024-08-02 15:10:36

Flex框架Riawave应用以及对AJAX开发框架的思考的相关文章

Flex框架简介

我们在学习一门技术的时候,总是习惯于看一下这门技术的名字是哪些英文单词的缩写.这样的例子很多,比如ASP是Active Server Page的缩写. 但找了好久,没有找到Flex是哪些单词的缩写.因此按我自己的理解,Flex是ADOBE公司推出的一个技术名词,而并非是什么英文缩写. 简介 Flex 是一个高效.免费的开放源框架,可用于构建具有表现力的 Web 应用程序,这些应用程序利用 Adobe Flash Player 和 Adobe AIR 运行时跨浏览器.桌面和操作系统实现一致的部署.

众说纷纭的Flex框架Mate

Mate是由AsFusion在2008年6月创建的一个基于标签的Flex框架.自从InfoQ报道了Flex社区对其发布的反应后,Mate得到了Flex开发者的注意.当前很多人都想知道相比于已有的其他框架如Cairngorm和PureMVC,Mate如何适应于Flex RIA开发. TechPer的Java开发者Per Olesen在其博客上发表了一篇博文,谈到了Mate的优缺点. 根据Olesen所述,Mate的优势在于: Mate是个Flex框架,这意味着它不会隐藏或者抽取对Flex apis

yii ajax-yii框架里怎么实现Jquery Ajax方法传值到控制器action方法里

问题描述 yii框架里怎么实现Jquery Ajax方法传值到控制器action方法里 $.ajax({ type:'post', url:"/www/index.php?r=home/CkUser",//地址写什么才是对的 data:{"name":val}, success:function(msg){ alert("正确"); $("#nameinfo").html(msg); }, 解决方案 地址直接写根下的控制器下的

框架 项目-如何搭建一个JavaWeb开发框架?

问题描述 如何搭建一个JavaWeb开发框架? 怎么搭建一个简单的JavaWeb开发的框架,比如用Spring+Hibernate+Struts2搭建一个SSH框架呀! 解决方案 参考:http://blog.csdn.net/communicate_/article/details/8644040 解决方案二: springMVC+MyBatis很好用 解决方案三: http://wenku.baidu.com/view/32607b35e518964bcf847cff

JavaScript框架:跨浏览器的标准化Ajax请求

Ajax 使用JavaScript框架最令人信服的理由是跨浏览器的标准化Ajax请求.Ajax请求是异步的HTTP请求,向服务器端脚本发送请求,然后得到一个响应结果,如如XML.JSON.HTML.纯文本格式的数据.大多数JavaScript框架有一定形式的Ajax请求对象,它接受一系列选项作为参数.这些选项包括回调函数,在得到Web服务器的响应时调用,ExtJS.MooTools和Prototype的Ajax请求看起来是这样的: 清单11:一个ExtJS 库中的Ajax请求 Ext.Ajax.

Flex框架问题

问题描述 各位大侠你们用flex都用什么框架啊 ,用框架有什么好处啊 .麻烦各位给讲讲哈 解决方案 pureMVC是Flex的MVC框架 BlazeDS和LCDS是与Java交互的工具 LCDS收费,选择BlazeDS,MVC框架用Cairngorm 所以 用Cairngorm+BlazeDS

前端框架Bootstrap的Modal使用Ajax数据源,如何避免数据被缓存

问题描述 有一个表格序号 姓名 性别 操作1 a 男 查看 修改2 b 女 查看 修改3 c 男 查看 修改4 d 女 查看 修改我要点击查看一条数据,弹出一个层modal显示明细,点一下,会使用Ajax获取数据.但是再点一下,不会重复获取,而是使用之前获取到的数据.如何让每次都重新获取数据?求解答 解决方案 1.绑定事件,在关闭的时候,直接将数据清除:$("#model").on("hidden.bs.model",function(e){$(this).remo

推荐使用轻量级ajax框架-jQuery

小而强大是我们在系统开发的时候所追求的,用少量代码解决复杂问题这是优秀代码的灵魂: 而我们平常使用的架构.框架正是这种思想的实例化: 术语:RIA(RIA是Rich Internet Applications的缩写,翻译成中文为富因特网应用程序)技术 随着浏览器厂商对产品的标准化和Web2.0技术的成熟程度我们会经常在开发中使用AJAX这种看似简单但功能强大的技术,关于AJAX技术的介绍在此省略大家可以到网上查找相关 资料:在使用AJAX开发的过程中重点还是怎么提交表单.根据数据操作DOM,随后

如何在Domino上使用Ajax 框架Dojo

作为 Domino 开发人员,浏览器应用的开发是其中重要的一部分.而浏览器应用开发方面会有许多新的技术和方法出现.如何将这些新的技术和方法运用到 Domino 环境中是 Domino 开发人员需要面对的一个重要问题. 目前,我们正处于在 Web 2.0 的时代,在这个伟大的时代出现了大量的浏览器技术,其中有代表性的就是 Ajax.通过 Ajax,我们可以让客户端在不刷新网页的情况下与服务器交换数据,从而生成真正动态的网页.对 Ajax 的使用包括一定的低层编码工作,为了简化这一工作,人们提出了