技术开发 频道

Web应用平台选择Flash还是选择开放Web?

    预加载性能(Flash)

    相反,Flash和类似Flex等框架的编译方式,使它可以更优化地实现预加载交互。因此,如果你不介意在你的应用程序上有一个“进度加载条”,并且有一个高度执行性能需求,那么Flash可能是一个好的解决方案。值得提出的是,诸如谷歌Chrome V8和Mozilla火狐SpiderMonkey中的新JavaScript虚拟机,正在打破解释型语言性能的障碍。不幸的是,微软IE浏览器在语言性能方面依然处于落后状态。尽管我们认为微软也正在优化它们的JavaScript引擎,但是目前来说,获得高执行逻辑性能的非常好的方式是使用Flash ActionScript 3。

    动画(Flash)

    如果你希望画质流畅,那么Flash是你最好的朋友。尽管这个说法目前成立,不过你应该知道的重要一点是,通过现代浏览器(包括IE8)和诸如jQuery等Ajax工具,完全借助于Open Web技术的应用程序也可以具有还过的去的动画功能。不过,除非动画是应用程序的重要基石,它不应该成为选择哪一种技术的关键或决定性因素。 

    2D&3D(Flash)

    这无疑是Flash的一个强项。尽管Open Web正在建立某些2D标准和实现(诸如Canvas和SVG等),但是在像素和矢量图形创建和管理方面,没有任何一个技术能够比Flash提供更高的性能和功能。尽管Canvas和某些SVG现在已经被火狐和其它基于WebKit的浏览器(苹果的Safari和谷歌Chrome等)所支持,但微软的IE浏览器却没有支持它们。开发者可以通过使用JavaScript或Flash库等兼容方式来回避微软这个限制,但是往往以牺牲功能和性能为代价。换言之,尽管以SVG/Canvas/VML建立一个在线版Photoshop或类似Visio的应用是可能的,但是使用Flash技术创建它所需要的投入肯定更具吸引力。不幸的是,Flash不支持解释型模式,因此Web开发者将不得不完全转向Flash开发模式和工具。尽管有一些有趣的Flash SVG库可以刚Web开发者使用Flash来展现SVG,或使用浏览器JavaScript虚拟机来运行脚本,但是这样做通常会以降低性能为代价。

    文件处理(Flash)

    文件处理功能一直完全被不同的Open Web标准和实现组织所遗忘。创建一个通过浏览器存取本地文件的有效体验一直是一个挑战。即时是最新的浏览器,其文件输入模块近允许一次选择一个文件。尽管在这方面Flash也难成完美,不过它在这个方面增加了一些不错的功能,诸如多文件选择功能,另外还增加了一个很重要的功能,可以在将文件从客户端发往服务器之前阅读它们的内容。另外一种选择是使用Java技术,Facebook在其图片上传程序中就使用了该技术,它通过签名applet几乎实现完整的文件系统控制。高级剪贴板支持是另外一个被忽视的需求。

    视频/音频回放(Flash)

    在HTML 5中有两个比较大的新功能,一个是离线支持,另一个则是视频和音频标签。不过,关于视频标签的支持格式,目前还存在一些争论。其中最大的问题之一是最好的视频格式往往具有版权,尽管诸如Adobe、微软和谷歌等商业厂商愿意为它们的用户支付视频税,而开源社区却发现自己处于“双环困境”(catch-22)中。因此,从一个应用程序开发者的角度来看,Flash是迄今为止能够为应用程序带来高品质视频和音频的非常好的选择。而且Flash最近还支持了H.264/mp4,就目前来说,没有什么比它更适合了。

    如上所述,没有一种技术可以满足所有需求。根据应用程序需要,你可能需要组合使用多种技术。很明显,对于一个技术厂商来说,希望自己的技术被应用在尽可能多的场景中;而对于应用程序开发者来说,无论采用哪一种技术,唯一的目标就是确保应用程序取得成功,开发者在投入太多时间和金钱到某一种技术之前,应该理性、客观的评价每一种技术的优缺点。另外,在定义应用程序需求时,要真正关注用户关心的事情。
 

0
相关文章