Ajax同Flash比较
关于Flash和Ajax哪个更好有很多说法。这里整理了一些评判标准,你可以自己决定哪个更适合你的网站。
Ajax应用
我对于Ajax的定义是:
这就是说Ajax既要使web页面有奇特的效果,也要能和服务器动态通信来减少等待时间。 一些人有范围更小的定义,但是我在这里使用这个定义。
能帮助实现Ajax应用开发的框架有很多。DWR只是其中之一,除此之外还有Dojo、Prototype等等。
Flash应用
Flash可以代表很多东西。在这里Flash意思是.swf文件。这在技术上可能令人有些小小的误解,但是它的应用却十分广泛。这个世界上只有一种Flash技术,但是有很多工具帮助你生成Flash(.swf)文件,例如Swish和Laszlo
Macromedia公司有一个如何用Flash开发富互联网应用的展示。
为什么Ajax更好?
可搜索
一般来说,web页面比Flash页面更容易被搜索引擎分析。搜索引擎可以根据你的网站的类型做出不同的反映。把Flash应用中的文字提取出来做
为索引是能够实现。Google和其他的搜索引擎制作商能够支持.swf文件的索引。尽管如此.swf文件还是更难被所有引擎分析。
开放性
尽管swf文件格式是公开的,并且也有一个很大的开源社区。但是没有开源的Flash播放器来代替Macromedia的许可证。偏激的开发人员希望有更加开发的系统,而不希望依赖与第三方或者潜在的竞争对手也许希望避免使用Flash。
成本
Flash开发环境的成本是个问题。$700可能是一下小设计室的大投资。多数公司都希望成本最好是$0。
也有一些便宜的可选的工具如Swish,或者免费的Laszlo,但是这些工具不能发挥Flash全部优势。
辅助工具
Ajax应用默认采用用户环境中的字体和颜色设置,而Flash应用采用开发者指定的设置。这就使其难以适应残疾用户的要求。在一些特殊情况下需要屏幕阅读器,加速键等,Flash应用就不能使用了。一个支持辅助工具的站点可以用Ajax实现。
安全
没有Flash的Web应用一般来说比较安全,主要有以下原因:
- Flash一般用来做广告
- 有可能被pop-up拦截器阻拦
- 他能产生不过期的cookie
结果很多用户使用Flash拦截器来控制web访问。或者不访问Flash站点。
人们要编写复杂的Ajax或者Flash应用肯定要用到一些高级工具。但是一般来说Ajax开发需要的工具比Flash的更简单,更便宜。
Flash好在哪里?
处理多媒体
Flash比存HTML能更好的处理声音和图片。因为现在多媒体非常丰富,现在的前40位网站上大多数包含Flash。
兼容性:因为只有一个Flash播放器提供商,所以你不需要在不同的浏览器商经行测试。上面提到的开放性在这里是弱项。Web应用逐渐向两个趋势发展:
- 可用的浏览器明显比几年前要少,并且它们的bug也越来越少。
- 能够跨浏览器兼容工作的库越来越多。
矢量图形
矢量图形在多数浏览器中都是支持的,或通过SVG(Mozilla 1.5
原生支持,其他浏览器通过插件),或通过Canvas元素(Safari和Mozilla
1.5),或通过DirectAnimation(IE4+)。尽管如此,没有一个实现是通用的,也没有一个插件是免费的。
最近Google宣称要通过Javascript实现一个叫ExplorerCanvas的技术来使IE支持Canvas。
另外还有基于div的展示程序,例如Walter Zorn
访问机器
Flash应用比web应用更好的访问机器上资源。Flash应用程序可以访问摄像头和其他外围设备。纯web应用是做不到的。当然这也可以被看作一种缺点。
结论
哪个更好? 看你要干什么!