从不同的角度分析Flex的优缺点



技术角度:

(1)具备了RIA时代富客户端的优点(C/S+B/S)

(2)支持多种服务器语言(JAVA、.NET、PHP)及主流框架(Spring、Hibernate)

(3)与Java结合后相当强大,能充分利用Java的资源背景

(4)拥有丰富的组件和第三方组件,对企业级的数据汇总和业务流程展现力较强悍

(5)借助开源的力量,拥有众多民间组织和牛人支持

(6)Adobe公司(还有MM多年积累)的强大背景

(7)源于Flash的天生丽质,轻松使用多媒体资源,动态交互性强

(8)借助FlashPlayer的安装普及度,轻松实现跨浏览器跨平台

(9)良好的架构设计和制作精良的文档示例(明年FLEX4同步推出中文版)

(10)借助于插件丰富的Eclipse开发平台并拥有独立的IDE

(11)框架设计重用性高,有利于模块化设计

(12)近几年发展态势良好,获得了广泛认可,产品和技术也越发成熟

开发者角度:

(1)开源,透明

(2)基于Eclipse开发平台,易上手,且插件丰富

(3)基于Eclipse平台,开发调试方便(FB4中的条件断点)

(4)ActionScript语言与Java的融合度和相似度较高,易学易用

(5)MXML标签与XML相似,逻辑清晰可读性强

(6)架构设计良好,耦合度低,有利于组件重用

(7)无需针对不同浏览器编写代码,摆脱编写和调试的噩梦(针对JS说的)

(8)类似VB的可视化拖拽组件,快速创建界面

(9)方便定制及使用第三方的皮肤和样式,无需美工也有好效果

(10)支持多媒体资源,轻易开发动态交互性强的界面

(11)众多的RPC组件保障对后台数据访问的安全性和效率

(12)文档示例丰富,通过网络可以获取大量的学习资源

(13)近两年发展态势良好,前景光明

企业角度:

(1)开源,免费

(2)具备了RIA时代富客户端的优点(C/S+B/S)

(3)项目和组件的重用性高,易于资源积累和快速构建

(4)Flex提供了与其他语言的结合,能广泛利用已有的资源

(5)界面华丽,客户认可度高

(6)学习曲线一般,培训成本低

用户角度:

(1)部署和更新方便

(2)界面漂亮,交互性强

(3)安全

缺点:

(1)不擅长处理复杂的业务流程,主要还是适合展现(Flex不是万能的)

(2)继承了Flash的诸多优点,却唯独丢掉了Flash的小巧轻盈(减肥是永恒的话题)

(3)目前尚没有比较好的减肥策略,带宽较好时这不是问题(不是一般的卡。。。)

(4)对服务器和客户端的硬件设备都有一定要求(CPU和内存占用很生猛。。。)

(5)运行期内存泄露状况严重,尽管可以通过一定手段改善(这个很崩溃)

(6)对一些较专业的领域涉及较少,需要第三方组件支持(比如地质方面的)

(7)Adobe公司对中国分部的支持不够(感觉宣讲和文档都做得不够)

(8)搜索引擎对swf文件的支持不够(Adobe一直在努力)

(9)与以往浏览习惯不同,比如右键被屏蔽,图片无法保存(可以改善)

鉴于Flex生成的swf文件太肥是其主要缺点(加载慢,运行慢,内存占用多),我就主要从减肥和优化的角度来说一下使用心得。

使用心得:

(1)Flex只是前台展现,需要搭配强大的后台(注意前后台的均衡和优化)

(2)考虑异步加载(比如分步加载外部资源)

(3)界面推荐使用相对布局,合理组合,避免多余嵌套

(4)界面加载图片推荐使用外部加载方式,尽可能多使用矢量图形

(5)规范CSS样式表,尤其注意使用的外部字体大小

(6)使用额外的皮肤和特效时需要综合考虑生成的文件大小和执行效率

(7)适当地考虑延时加载策略,主界面只显示必要的内容

(8)规范编码,提高执行效率,避免内存泄露

(9)使用RSL和Module和其他有效方式努力减肥

(10)尽可能重写一些继承底层类的组件,执行效率更好

(11)慎重使用重量级组件(比如DataGrid,AdvancedDataGrid)

本文出处:http://smartblack.iteye.com/blog/556202

从不同的角度分析Flex的优缺点的更多相关文章

  1. Android IOS WebRTC 音视频开发总结(六六)-- 三个角度分析美女视频直播这个行业

    本文主要从用户,公司和技术角度分析美女视频直播这个行业,文章最早发表在我们的微信公众号上,支持原创,详见这里, 欢迎关注微信公众号blackerteam,更多详见www.rtc.help 美女视频直播 ...

  2. 从源码的角度分析ViewGruop的事件分发

    从源码的角度分析ViewGruop的事件分发. 首先我们来探讨一下,什么是ViewGroup?它和普通的View有什么区别? 顾名思义,ViewGroup就是一组View的集合,它包含很多的子View ...

  3. 第九节:从源码的角度分析MVC中的一些特性及其用法

    一. 前世今生 乍眼一看,该标题写的有点煽情,最近也是在不断反思,怎么能把博客写好,让人能读下去,通俗易懂,深入浅出. 接下来几个章节都是围绕框架本身提供特性展开,有MVC程序集提供的,也有其它程序集 ...

  4. 从虚拟机指令执行的角度分析JAVA中多态的实现原理

    从虚拟机指令执行的角度分析JAVA中多态的实现原理 前几天突然被一个"家伙"问了几个问题,其中一个是:JAVA中的多态的实现原理是什么? 我一想,这肯定不是从语法的角度来阐释多态吧 ...

  5. 深入浅出!从语义角度分析隐藏在Unity协程背后的原理

    Unity的协程使用起来比较方便,但是由于其封装和隐藏了太多细节,使其看起来比较神秘.比如协程是否是真正的异步执行?协程与线程到底是什么关系?本文将从语义角度来分析隐藏在协程背后的原理,并使用C++来 ...

  6. 从开发者的角度分析iOS应如何省电

    从开发者的角度分析iOS应如何省电 说明 网上关于iPhone如何省电的文章很多.但是基本没有讲原理.而在生活中,很多人在使用iPhone中有着明显的错误的省电习惯. 本文从iOS开发者的角度,对iO ...

  7. 从程序员的角度分析微信小程序(编程语言:用到什么学什么)

    从程序员的角度分析微信小程序(编程语言:用到什么学什么) 一.总结 一句话总结:微信小程序原理就是用JS调用底层native组件,和React Native非常类似.(需要时,用到时再学) 1.选择语 ...

  8. JVM Java字节码的角度分析switch的实现

    目录 Java字节码的角度分析switch的实现 引子 前置知识 一个妥协而又枯燥的方案 switch的实现 回顾历史 字节码分析 其他实现方式? Java字节码的角度分析switch的实现 作者 k ...

  9. 源码角度分析-newFixedThreadPool线程池导致的内存飙升问题

    前言 使用无界队列的线程池会导致内存飙升吗?面试官经常会问这个问题,本文将基于源码,去分析newFixedThreadPool线程池导致的内存飙升问题,希望能加深大家的理解. (想自学习编程的小伙伴请 ...

随机推荐

  1. Yii框架中使用mongodb扩展

    前提条件:安装了mongodb数据库 安装了mongo的php驱动 下载Yii的mongo扩展:这是YiiMongoDbSuite的1.3.6版本支持PHP Mongo驱动的版本为1.0.5及以下 下 ...

  2. elk5.4小白踩坑记录

    搭建请参考:http://www.ywnds.com/?p=9776 搭建步骤:http://www.ywnds.com/?p=9776 初步解方案:先不用管这个提示,当你创建完索引后,接受数据后.一 ...

  3. POJ 1222 EXTENDED LIGHTS OUT [高斯消元XOR]

    题意: $5*6$网格里有一些灯告诉你一开始开关状态,按一盏灯会改变它及其上下左右的状态,问最后全熄灭需要按那些灯,保证有解 经典问题 一盏灯最多会被按一次,并且有很明显的异或性质 一个灯作为一个方程 ...

  4. 【模板小程序】循环方阵构造(仿《剑指offer》循环矩阵打印)

    /* 本程序说明: 输入:方阵大小n,输出:n*n的旋转方阵 举例: 当n=2时,输出: 1 2 4 3 当n=4时,输出: 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 ...

  5. python实现HOG+SVM对CIFAR-10数据集分类(上)

    本博客只用于学习,如果有错误的地方,恳请指正,如需转载请注明出处. 看机器学习也是有一段时间了,这两天终于勇敢地踏出了第一步,实现了HOG+SVM对图片分类,具体代码可以在github上下载,http ...

  6. Centos启动默认打开网络

    Centos打开网络 测试的时候发现网络没有打开,得到图像界面点击网络打开.比较麻烦去搜索了解决方法在此记录下来. 通过 /etc/sysconfig/network-script/, 编辑ifcfg ...

  7. Mysql查询某字段值重复的数据

    查询user表中,user_name字段值重复的数据及重复次数 select user_name,count(*) as count from user group by user_name havi ...

  8. mysql 获取上个月,这个月的第一天或最后一天

    /*上个月今天的当前时间*/select date_sub(now(),interval 1 month) /*上个月今天的当前时间(时间戳)*/select UNIX_TIMESTAMP(date_ ...

  9. ubuntu下双网卡桥接

    1. 安装 brctl工具 sudo apt-get install bridge-utils 2. 添加桥 # brctl addbr br0 #创建桥接 br0 # brctl addif br0 ...

  10. 802.1X和NAP整合实验手册

    实验描述 公司内部有多个部门,创建了域的架构,并搭建了DHCP服务器和Radius服务器,要求每个部门都独享一个网段,实现每位用户插上网线后,跳出窗体进行身份验证,如果用户通过验证,根据用户所在的部门 ...