flex与java对比_Flex与Java EE深度结合(一)

Flex与Java EE深度结合(一)以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

ceec64b6de94de133f713ba46e477e37.png

这篇文章的前三部分展示了Flex组件如何实现逐步增强一个Web应用 开源SWFObjec库使得嵌入Flash Player变的简化——一个Flex应用的实施环境——到HTML内 Flash Player 依次允许委派与用户界面相关的逻辑到Flex组件内 Flex指定的用户界面语言不仅仅使得用户界面代码更简单 而且使得你的应用程序从Flash Player的实时编译 用户界面结果 多种手段支持等等中获益匪浅 另外 因为Flex支持以CSS为基础的样式 你的Flex组件将会与外界环境HTML页面相处得十分和谐 Flex与Java EE应用程序结合(一)

一个关键方面在于逐步增强的Flex能够通过数据传输到达Flex组件中 在前面我们曾经提到 服务器产生的JSON阵列反映了应用程序的数据 然后它作为FlashVar传递到Flex组件内

尽管FlashVar允许Flex成为现有的企业级应用的一部分 并且对应用程序的改变很小 FlashVar仍然有一个非常大的限制 因为FlashVar是由名称/值组成的字符串 在浏览器上面对于字符串对象的最大长度有限制 对于大多数浏览器而言 这个限制是 KB

两个阶段载入

你可以去掉这个限制 这需要你为Flex组件执行它自己的数据载入作准备 这就需要两个阶段载入的网页

对浏览器的要求做出响应 第一个阶段载入HTML页面和嵌入的SWF(Flex)对象;

一旦Flex应用完全展现在浏览器上 Flex获取应用程序的数据用来填充到组件中

第二阶段载入很多丰富客户端应用程序的一般协议 通过减少响应时间可以改善用户体验 只要用户定留在同一个HTML页面上 阶段一的执行就只进行一次 所有之后的数据存取的发生都是通过第二阶段实现的 缓解了每一次浏览器检索以及重新展示用户界面的时候对于服务器的要求 性能优势得益于这种模式充分利用了每个应用一个页面的模式 比如说谷歌的Gmail和地图应用程序

这篇文章的其余部分将会说明Flex对于来自远程网络资源的数据载入最优化的三种方法 通过HTTP载入JSON数据 通过HTTP载入XML 以及通过高性能的串行协议直接引用服务器Java对象 对于RESTful 数据存取而言 前两种方法是一个好的选择 尽管远程对象引用适合RPC通信样式 最新方法的一个优势是客户端以及服务器可以通过类型对象通信 Flex Engine Yard的全新云服务

JSON 超越 HTTP

Flex的HTTP Service类使得委托JSON数据载入到Flex客户端的过程变得简单 下面的ActionScript代码获得了指定的URL的内容 作为Flex客户端完成事件处理程序的一部分

private function onCreationComplete():void {

HTTPService = new HTTPService();

url = booksInventory json ;

addEventListener(ResultEvent RESULT onResult);

addEventListener(FaultEvent FAULT onFault);

send();

}

private function onResult(event:ResultEvent):void {

booksInventory dataProvider = JSON decode(event result as String) as Array;

}

private function onFault(event:FaultEvent):void {

Alert show( Can t load data: + ssage);

}

列表一 使用HTTPService获取JSON数据

HTTPService Flex SDK的一部分 为Ajax XMLHttpRequest对象提供相似的功能 给予一个URL 它使得你能够从HTTP数据源异步的获取数据 send()会立即调用返回 当结果返回的时候 或者采用另一个选择 就是将错误删除的时候 回调机制采用这项功能

这个实例的结果以及失败处理程序功能都是由名称引用的 编译程序将会找到与方法相匹配的名称以及必须的参数和返回类型 然后分配这些功能 作为操作者来处理这些结果或者失败的HTTP请求

实例的结果和失败处理功能每一个都是由一个单一行组成的 你可以使用ActionScript功能让这些代码变的简练一些

private function onCreationComplete():void {

HTTPService = new HTTPService();

url = booksInventory ;

addEventListener(ResultEvent RESULT

function(event:ResultEvent):void {

booksInventory dataProvider =

JSON decode(event result as String) as Array;

});

addEventListener(FaultEvent FAULT

function(event:FaultEvent):void {

Alert show( Can t load data: + ssage);

});

send();

}

列表二 功能的成功和失败处理

ResultEvent的结果特性是非类型对象 并且我们必须在其转变为JSON阵列之前将它转变为字符串 因为这种转变确认了数据或者转变为指定的数据类型 或者返回空值 在这个例子当中 错误的处理程序仅仅是显示了一些不友好的模块 标示出了通信错误的原因 lishixinzhi/Article/program/Java/JSP/201311/19459

分页:123

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值