热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Flex是咋回事之一集CS和BS之大成的RIA

用了一年多Flex,感触多多。偶尔有同行的朋友问我啥是Flex,说实话,一时半会儿我还真说不清楚。尤其是对于一个从未接触过Flex的朋友,想要由浅入深地只用嘴巴不用电脑给他讲明白,这确实难为

用了一年多Flex,感触多多。偶尔有同行的朋友问我啥是Flex,说实话,一时半会儿我还真说不清楚。尤其是对于一个从未接触过Flex的朋友,想要由浅入深地只用嘴巴不用电脑给他讲明白,这确实难为一个整天只跟机器打交道的程序员了。后来我想了一个办法,我说你知道开心农场吧,那就是拿Flex做的。这下子很多人有兴趣了,呵呵,如果你也有兴趣,请继续往下看。失言未察之处,欢迎拍砖。

 

一般来说,一项技术的产生都是为了解决业界的重大难题而出现的。那么说到Flex我们就不得不先说一下RIARIA这个概念其实早就出现了,我最初是07年在《程序员》杂志上关于Ajax技术的介绍时看到的。到了08年,伴随着网络视频的飞速发展,RIA应用已经搞得有声有色热火朝天了,其实翻译过来就是个富客户端(Rich Internet Application),相较于BS的瘦客户端,也可以称之为胖客户端。当然如果你已经被这些名词概念熏得焦头烂额,请连跳四段(小黑好心提示,本部分仅余四段。。。)。

 

RIA简单的说,就是CS+BS的开发部署模式。CSBS大家都很熟悉,CS的全拼是Client/Server,它的优点在于借助局域网的信息安全和带宽优势,充分利用客户机器的运算能力从而降低服务器压力,缺点就是安装部署更新麻烦,比如老板让我跑到一千公里外的客户那安装一千台机器的客户端,过几天我回来了,老板说那边有几台机器运行有问题,你去维护一下~!过几个月,老板说你去把那一千台机器全部升级一遍,他们自己不会装。。。呵呵,这些痛苦我当然不曾经历,我杜撰的。

 

那么在1998年,互联网风起云涌的时候,BSBrowser/Server,逢时而生。BS充分利用互联网的优势,解决了CS安装部署更新的一大难题。通过把业务逻辑处理放在服务器端,然后解析为HTML,利用HTTP协议传输到客户的浏览器上就万事大吉。看起来很美,其实干过就知道也很痛苦。哪儿痛呢,痛的当然是我们这些开发者。安装部署更新倒是省事儿了,装个IE,给个网址就能让客户登录了。但是,基于HTML+Javascript的技术让人很崩溃。Javascript我好久不用了,在以前毕业实习的时候,感觉开发和调试都不方便,而且还面临着不同浏览器不兼容的噩梦(据说现在上述问题随着Ajax的风行有所改善,我不太了解)。另外,BS还有一些潜在的缺点。比如,客户端体验简单,不易开发丰富的效果来展示数据(这和当时的网络带宽也有关系);必须联网才能运行,信息安全无法保障;应用程序需要通过其他技术辅助才能操作客户端资源;服务器负载过高而客户机运算能力未充分使用等。

 

综合来讲,BS仍然是一个不错的解决方案,它的Web应用程序和CS的桌面应用程序曾一度二分天下,各领风骚数十年。从解耦角度来看,CS以数据库的方式把数据从程序中分离,BS以浏览器页面的方式把界面和逻辑再次分离,然而第二次分离是不彻底的。表面上只是代码结构的分离,从实质上看表现层仍然是逻辑层的附庸,前台UI完全和后台实现技术绑死(把已有项目后台从C#换成JAVA是不可能的。。。)为了解决这个问题,RIA出现了(顺便搞定了一些其他问题,比如页面异步刷新,前台UI不够丰富等等),RIA基本实现了不依赖于特定后台技术,能与多种服务端搭配使用。

 

2002年,MacroMedia公司(简称MM05年被Adobe收购)首先在Flash Player6中引入了RIA概念。2004年,MM正式发布Flex1.0(汗,终于说到Flex了),随着Ajax的火爆,RIA开始受到广泛关注。RIA主要有两个方面的含义,一是用户界面的丰富即富客户端,二是数据模型的智能,服务器已经变成了支持客户端正常运行的数据服务,并提供了异步数据传输和脱机缓存机制等复杂的数据处理能力。前面提到,RIA本质上就是CS+BS,它想集大成,想搞总结,想终结CSBS二分天下的局面。说浅显点就是,如果以前的CS程序现在能在网络上运行,并且保持了原来的功能和特征,那么这就是一个RIA。关于RIA的详细介绍GOOGLE上一搜一大把,在此就不继续作详细展开。回到当下,RIA各种技术一番拼杀,现在广为人知的只剩下四个NB小伙:AjaxFlexSilverLightJavaFx。在本文第二部分中,我将简要介绍一下Flex(貌似进度有点儿慢,多谢支持。。。)


推荐阅读
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 前言对于从事技术的人员来说ajax是这好东西,都会使用,而且乐于使用。但对于新手,开发一个ajax实例,还有是难度的,必竟对于他们这是新东西。leo开发一个简单的ajax实例,用的是 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • svnWebUI:一款现代化的svn服务端管理软件
    svnWebUI是一款图形化管理服务端Subversion的配置工具,适用于非程序员使用。它解决了svn用户和权限配置繁琐且不便的问题,提供了现代化的web界面,让svn服务端管理变得轻松。演示地址:http://svn.nginxwebui.cn:6060。 ... [详细]
  • Java和JavaScript是什么关系?java跟javaScript都是编程语言,只是java跟javaScript没有什么太大关系,一个是脚本语言(前端语言),一个是面向对象 ... [详细]
  • 本文介绍了Java后台Jsonp处理方法及其应用场景。首先解释了Jsonp是一个非官方的协议,它允许在服务器端通过Script tags返回至客户端,并通过javascript callback的形式实现跨域访问。然后介绍了JSON系统开发方法,它是一种面向数据结构的分析和设计方法,以活动为中心,将一连串的活动顺序组合成一个完整的工作进程。接着给出了一个客户端示例代码,使用了jQuery的ajax方法请求一个Jsonp数据。 ... [详细]
  • XMLhttpREquest_Ajax技术总结之XmlHttpRequest
    Ajax1、 什么是ajax   ... [详细]
  • asp.net(vb脚本)如何获取xml的节点值?xmlversion1.0encodingutf-8?rootimageimagemenusmenuurl#frame_paren ... [详细]
  • 最近学习了关于使用最为流行的jquery发送请求,在实践中以最为简单的聊天室作为测验的辅助工具,对相关网页开发有一个初步的认识,希望大家能够一起学习进步。首先介绍一下 ... [详细]
  • 表单提交前的最后验证:通常在表单提交前,我们必须确认用户是否都把必须填选的做了,如果没有,就不能被提交到服务器,这里我们用到表单的formname.submit()看演示,其实这个对于我们修炼道 ... [详细]
  • Itwasworkingcorrectly,butyesterdayitstartedgiving401.IhavetriedwithGooglecontactsAPI ... [详细]
  • JavaScript - let和var区别
    前提ES5只有函数作用域和全局作用域,var属于ES5。let属于ES6,新增块级作用域。目的是可以写更安全的代码。Theletstatementdeclaresablocks ... [详细]
author-avatar
锋仔
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有