zoukankan      html  css  js  c++  java
  • 理性思考Flash与Ajax相关问题[转载]

    此文写于购《交互设计之路-让高科技产品回归人性》、《Ajax in Action》两书之后。 – 转载请保留出处
    http://www.awflasher.com/blog/archives/503

    我实在是不愿冠以这样一个标题,但危机已经来临。之前(2005-04-28-时隔一年)我曾经翻译过国外某blog上的文章和评论:
    http://www.awflasher.com/blog/archives/216
    该文荣幸得到了Adobe中国的7yue的推荐。现在回首再看那时的争论,呵呵,有些不寒而栗,那时Ajax不过是DHTML的一个新名词罢了,看看今天……

    作为一个纯粹的产品创作者(比如产品经理)或者开发人员(比如交互式设计工程师、原型开发工程师)而言,这么说似乎显得不近理性,甚至可以成为被上级辞退的一条理由。但作为一个从Flash中受益,与Flash共同成长的Flash的用户,我不得不为Flash本身感到深深的担忧。

    Flash固然是工具,但我毕竟不是一个冷血的商人,使用它,我感受到了乐趣。之前有很多朋友分析、对比过Flash和它的竞争对手,尤其最近Luar两篇文章《2006-Flash的未来未有来》「從Flash走到AJAX--使用者經驗與開發者經驗的二三事」講義下載更是把Flash的位置推及到悬崖边缘。相比已经投身Ajax的Luar,我也想发表一些自己的观点,当然,我无论是从经验,还是技术,都无法与Luar相提并论,但我争取理智地得出每一个结论。

    三年前,随着FlashMX2004推出以及面向对象脚本AS2.0的出现,似乎Flash进军富客户端(Rich Client)的障碍被彻底扫除。如果我没有记错,正是Macromedia给富客户端“创造”了一个全新的、更大气的名字:RIA(Rich Internet Application)

    RIA的出现,似乎标志了一个时代。FlashMX2004似乎一夜间成为了开发RIA的必备利器。AS2.0的出现,头一次把Development(开发,主要指采用AS开发应用程序)列为Flash制作的另一条重要路线(之前一直是偏重Motion-Design:图形动画设计的),也正是那一年,大量的传统开发者投身RIA大军之中,一些AS1.0的坚决拥护者甚至高手也纷纷落马,开始回头重新补OOP的课。Flash从一个简单的交互式动画制作软件,摇身变成互联网应用程序开发的必备利器,瞬间背负了沉重的“历史使命”。然而不管是传统的Flash设计人员以及AS1.0面向过程开发高手,还是投靠FlashMX2004的新生力量,都对未来充满了乐观。Macromedia的Flashplayer普及率调查一次次将大家的斗志推向极致。市场上对于Flash开发者的需求也在急速上升:我的简历已经被浏览万次以上,并且收到很多电话邀请,小公司为主,也不乏较大的公司。当然,我并不是在这里给自己贴金,之前已经为这种“人品爆发”的现象作了理性解释和反思。权且理解为,我不经意之间沾了Flash的光吧!

    Macromedia在2005年4月(去年),完成了她最辉煌的结尾:被Adobe收购。

    其实被收购之初,大家都心有余悸,Luar当时也犀利地抨击过Adobe历史上通过收购调整产品线的一些劣行,说其很可能会把Flash给偷偷干掉。但时间证明Adobe没那么傻。三剑客无一遗弃。就连最危险的Fireworks,Adobe也给足了颜面。我们这些Macromedia的忠实拥护者渐渐地也接受了Adobe这样一个品牌。以至于今年4月16号,也没有谁跳出来“纪念”Macromedia被收购一周年(如果Adobe在收购之后把Flash干掉或者仅仅停缓开发,肯定会激起民愤)。这里顺便也表达我自己对Adobe的感激,它似乎吸纳了Macromedia的精神和灵魂。收购并没有影响Flash8的推出,包括之后的FlashPlayer8.5的迅速跟进。

    就在一切都顺利进展的时候,一个不起眼的名词出现了:AJAX

    这就是Flash的最大“竞争对手”?就我(awflasher.com)所知,目前没有一本像样的Flash开发书籍中提到Ajax,而几乎每一本Ajax的畅销书中都有提到Flash,有些甚至直接把Flash列为Ajax的竞争对手。我知道他们这么说肯定是有依据的,毕竟Ajax和Flash有太多相似之处:界面友好、用户体验良好、无刷新+数据安全保存等等……又毕竟,Flash的一些技术门槛和负面影响导致Ajax阵营可以迅速扩大,比如一些优秀的Flash制作人员毕竟还是偏重图形界面设计;传统的Web开发者很难进入Flash领域,不管他多聪明,也不可能一夜之间就把MovieClip这样的关键概念很快彻底掌握。而Ajax则不然,后面会提到。

    于是,相关的争论、比较也就接踵而至。也许是上文提到的Flash开发人员偏重图形设计,或者不客气地说,缺乏严密的理性、批判能力,所以每一次的争论中,似乎Ajax都稍占上风。并且Ajax最新的书籍也是层出不穷,图文并茂,概念多多。而且似乎本本畅销!

    我并不是想激化争端,但我是Flash的用户,因此我想大胆猜测一下造成这种局势的缘由:
    姑且把Flash和Ajax双方的支持者成为F阵营和A阵营,再次申明,我只是罗列一些实事,并非挑拨离间,我爱Flash,我也爱AJAX!
    //转载保留:http://www.awflasher.com/blog/archives/503

    一、Ajax技术来的虽然不晚,但是炒作的却比较晚,特别是在Flash8之后才火起来。因此沉浸在Flash8的喜悦中的F阵营似乎还没有做好准备。注:炒作这里并非贬义,只是我找不到合适的词来描述“短期内将某概念推广致大多数人认同”
    二、Ajax本身技术变革少,技术上甚至没什么新名堂,主要是概念和形式,已经有的技术积累也不错,因此投入研究非常容易;而Flash8改动大,每一次Flash升级,几乎都有一堆变革,加上本身设计+开发并重的AS2.0大大提高了入门门槛,F阵营有实力进行理性批判的人数(aw注:包括文章撰稿人和翻译者)肯定远远不及A阵营;
    三、刚才提到的:Flash开发人员还是偏重图形、动画设计,或者不客气地说,缺乏严密的理性、批判能力;
    三、Ajax确实有优势:浏览器的支持;而Flash虽然有着普及率众多的Flashplayer基础,但是浏览器支持方面肯定比Javascript稍逊一筹。毕竟你很难找到一个不支持Javascript的终端(禁止JS的人并没有你想象得那么多),然而找到一个仅装有Flashplayer6.0的客户机,还是比较容易的;
    四、其实这些也没有那么严重,Ajax毕竟也是一个无形的概念,没有太多的利益关系,最严重的是M$最新的一款IE补丁,使得整个互联网上IE中的Flash一下子全部殃及,让人不得不联想到微软Sparkle。(详见:《Flash杀手!微软Sparkle即将露面》 by awflasher.com)Sparkle以何种形式出现?Sparkle会不会团结A阵营排斥F阵营的影响,这些都不得而知。

    最后,看到这个标题:东拉西扯:中国网络广告总量也就相当于两个省级电视台,我恍然大悟,也许Flash/Ajax现在的“战争”还不及非洲某个小部落之间的战争呢。

    ==

    蓝色理想经典论坛相关评论,其中meud提到的js的问题以及flash的XMLSocket问题都值得好好看看;而且也can’t agree more with moonsun说的时间是检验真理的唯一标准。甚至比实践还重要。不妨理解为经过过去所有时间的实践的积分。后面的三点预言我觉得也非常有道理。确实,有时候我辛辛苦苦开发出来一个flash app放到FF上跑不了,非得去IE跑,当时我还挺郁闷,结果一调查,除了我自己,大家都在IE…也就是说大家都跑得挺好……我也就懒得改了。

    之前也发帖反思过。看来人需要多多反思

     

    引用自 meud(Moderator)

    这是一个很好的议题,相信很多搞RIA应用的人都会关注AJAX跟FLASH。

    所谓AJAX的优势,在客户端来说无非是JAVASCRIPT的优势,即JAVASCRIPT解析器几乎被所有的游览器所支持,在客户端占有率来说,FLASHPLAEYR目前没有达到或者超过它。

    而AJAX 的致命缺点,也正是由于JAVASCRIPT所导致的,楼主有兴趣可以找一些相关的文章,了解一下JAVASCRIPT的发展史,与大多数脚本语言相比, JAVASCRIPT的设计比较粗糙,有许多存在的,以及无法挽回的缺点(这也是JAVASCRIPT的占有率所导致的),调试一个庞大的JS程序简直是恶梦。对于一些相对脆弱的浏览器,甚至有可能导致浏览器崩溃。
    JS的页面无刷新并不意味着开销小,事实上,动态刷新技术只会增加服务器的负担。因为在整个运行过程中,客户端不断地发送请求,以保证客户端数据的即时更新。

    正是由于以上特点,导致AJAX应用成本相当高,纵观AJAX的应用的出现,几乎都是技术实力雄厚的大公司,才有能力开发部署相关应用。

    从语言上来看,AS1几乎就是JS的翻版,AS2是由AS1向后续版本进化的一个过度版本。这种演变的优势,将在AS3,以及后续版本中体现出来。

    如果真正要做实时应用的,建议看一下FLASH中的XMLSocket类。

     

    引用自 moonsun

    正如03年我预言MM最后应该被Adobe收购,在5Dmedia和一群版主论战一样,
    再次提出那个观点:经过时间检验的才是真理。

    JS或者说AJAX还有什么JAVA 3DHtml…..
    是绝对不可能击败Flash的
    如果可以,这些年来早就做了。

    正如FW永远只是第2等的图形处理软件。
    哪怕他在web市场占有量能对PS造成威胁。

    看类似楼主写的这样的文章,总是让我感叹为什么那些根本不能透过现象看本质的观点总是会被很多人Stand Alone Complex!

    回首再看现在的所谓web2.0标准问题,我预言MS仍然不会理会这个标准。
    IE的垄断地位依然存在。
    某天所有的公司都发现不执行这个标准就可以降低人力成本,但是仍然能在占市场垄断地位的IE上正常的浏览非标准格式网页的时候。
    傻瓜才会用“通过W3C认证”给自己渡金。

    感慨良多。。。。。。

    预言如下:

    1前段时间提到web2.0将会提高设计师的门滥很多人可以以此提高待遇的那个帖子将会成为历史的笑柄。
    2近5年将崛起的是因为手机移动上网而广泛应用的smil
    3下一代网页不会因为任何类似web2.0的空泛概念而全面变革,只会因为网络带宽的改变而变革。

    补充:aw(awflasher.com)原创翻译-Ajax和Flash比较分析

    有关Flash和Ajax相比谁更优秀的讨论已经很多很多了,这里理性的评价一下。
    (awflasher.com补充,其实还是不够理性,毕竟作者是AJAX的商业开发者)

    先看,Ajax应用程序,我对Ajax的定义是,DHTML + XHR(XMLHttpRequest) = Ajax。这就是说,Ajax其实是通过动态向服务器请求而减少用户的闲置等待时间的。其实很多人对Ajax有更深一层的看法,但是大多数人就是如此使用它的。这里有许多的框架基础,使得我们能够更轻松地完成Ajax开发。DWR就是一个非常明显的例子,当然,还有许多优秀的框架,比如Dojo, Prototype等等。

    Flash应用程序,Flash可以指很多东西,但是我们这篇文章主要讨论swf文件。这也许在技术上不够严谨,但是却容易为大众所接受。其实swf只有一种。固然有很多诸如Laszlo、Swish这样可以用于生成swf文件的工具。Macromedia公司有一系列的基于Flash开发的RIA应用程序。

    Ajax的优势
    可搜索性
    普通的文本网页会更有利于SEO。文本内容是搜索引擎容易检索的,而繁琐的swf字节码却是搜索引擎不愿触及的。虽然Google等一些大型的搜索引擎可以检索SWF内部的内容,但是仍然有很多麻烦存在。

    开放性
    Flash常年以来被Macromedia看的很死。包括Flex、FMS等辅佐技术一直都需要昂贵的安装、维护费用。而JS则没有这样的麻烦。没有人愿意承担法律和版权的风险。

    费用
    Flash开发是很昂贵的,因为FlashIDE等环境都是要收费的.而Ajax则不同.虽然有一些便宜的生成swf的工具,但是他们的工能实在无法满足复杂需求。

    易用性
    Ajax程序有更好的易用性。由于中间有一层Flashplayer代理层,因此许多辅助功能无法被Flash灵活利用。而且Flash在一些方面有着不好的口碑。比如弹出广告、比如恶意代码。
    (awflasher.com个人认为这八成是乱上xx网站造成的)

    易于开发
    人们开发复杂的Ajax和Flash应用程序时,都会借助一些高级的开发工具。普遍来说,Ajax的开发包比Flash简便、容易。

    Flash的优势
    多媒体处理
    Flash在音频、视频等多媒体领域相比HTML有绝对的优势。现在几乎所有的网站都包含有Flash内容。

    兼容性
    兼容性好:由于通过了唯一的FlashPlayer“代理”。人们不必像调试JS那样,在不同的浏览器中调试程序。

    矢量图型
    这是Flash最大的优势,同样处在这一领域的SVG、Canvas element以及Direct完全不能与Flash相比。

    客户端资源调度
    Flash能够更容易的调用浏览器以外的外部资源。比如摄像头、麦克风等。然而这是普通的HTML无法完成的。但是这也许是一个缺点(为什么呢?)
    aw附:作者没有给出答案。但我个人认为是考虑到安全性的问题吧?

    还是那句话,到底哪个好,这取决于你的需求

     

    引用自 翻译的一篇评论

    我是一名开发JS、ASP、PHP的程序员(偏服务器端)。由于一些项目需要,我自学了Flash并且深深的喜欢上了Flash。但是我却迟迟只能使用FlashMX的编程界面。每一个人都知道HTML、JS、PHP、XML都是免费的,然而Flash不是!如果Flex2是免费的,并且有一个类似.net Studio的开发环境。我将毫不犹豫地放弃Ajax。否则,虽然我喜欢Flash,但我不得不选择Ajax。作为一个服务器端的程序员,我更关心Flash和Ajax处理XML数据的能力,而不是一些漂亮的动画效果。我更看好Ajax+PHP(aw冷笑中……)

  • 相关阅读:
    Oracle导数据到SQL server的方法总结
    linux vmware 安装步骤
    linux user
    linux 下载jdk
    Jaxb2实现JavaBean与xml互转的方法详解
    idea 远程代码调试
    Java一次读取文本文件所有内容
    mysql 8 server windows 安装经验分享
    java和mysql的length()区别及char_length()
    Java web 强制301跳转
  • 原文地址:https://www.cnblogs.com/Sandheart/p/1951500.html
Copyright © 2011-2022 走看看