Flash与AJAX / JS有什么(技术)优缺点?

时间:2008-09-09 15:20:26

标签: ajax flash ria

我们提供了一个Web应用程序,其前端完全是在Adobe Flash中开发的。当我们在6年前选择Flash时,我们之所以这样做是因为它具有大量用户交互功能,例如拖动内容,打开和关闭菜单,树导航元素,弹出对话框等。

今天很明显,AJAX / JS提供了大致相同的可能性,并且由于可用的框架数量很多,实现它们非常可行。

是否有技术原因应该选择其中一种技术? “技术”是指性能,安全性,可移植性/兼容性等。我并不是指在Flash中完成非程序员方式开发等方面,或者将应用程序从一个应用程序切换到另一个方面是否有意义。

正如我刚刚解释in another question,在我看来,JS在市场份额方面遥遥领先,我想知道如果我们坚持使用Flash,我们是否会遗漏一些重要的观点。

11 个答案:

答案 0 :(得分:4)

除了其他人所说的,Flash在“矩形”中受到限制,无法以非突兀的方式添加到普通的html页面。

@Gulzar我认为当更多浏览器支持像mozilla 3.1这样的视频标签时,我们会看到更多采用ajax / js而不是flash。

答案 1 :(得分:4)

  • Adob​​e Actionscript是一种静态类型语言,Javascript是动态类型的。根据您的观点,这可能是件好事还是坏事。
  • 使用Javascript / HTML / CSS,您将进入跨浏览器兼容性地狱,特别是如果您想支持旧版浏览器。这可以通过可用的库来缓解,但它仍然是一个令人头痛的问题。使用Flash,您可以编写一次代码,它只适用于所有浏览器。
  • 即使有可用的库,Flash用户控件也比您在Javascript / HTML世界中找到的任何内容都要先进。在Javascript中,您不会发现任何与Flash提供的数据绑定用户控件的简单性和强大功能相近的东西。

我不知道Javascript如何比Flash拥有更多的“市场份额”。几乎任何拥有Web浏览器的人都安装了Flash插件。我很想知道有多少人禁用Javascript但有Flash插件。

另外请记住,如果你决定改变你的技术基础,那么你将会有一个巨大的学习曲线和大量的开发时间,所以你最好有一个很好的商业理由去做。

此决定还与您的应用程序的功能以及您的安装基础有很大关系。

编辑:我看到有人提到iPhone没有Flash支持。我希望这会随着iPhone的安装基础而改变 - Adob​​e会疯狂不支持它。

答案 2 :(得分:3)

  • 正确设计的AJAX应用程序比Flash更具有可谷歌性
  • 正确设计的AJAX应用程序比Flash更容易链接
  • AJAX不需要插件(Flash非常普遍,所以它并不是什么大不了的事)*
  • AJAX不像Flash那样由单一公司控制

编辑添加: *除了iPhone,正如Abdu指出的那样。

答案 3 :(得分:2)

JS和Flash在Web上都具有重要的功能。 JS仍然缺少的一个领域是渲染视频。

答案 4 :(得分:1)

Flash使用得很好,可以轻松实现本地化和国际化。

此外,以易于访问的方式使用Flash要容易得多;您可以向屏幕阅读器提供正确的文本,而不是让它们遍历所有可能的表单元素。

答案 5 :(得分:0)

我认为Flash应该仅限于在线游戏,视频和动画。否则使用html和Ajax。它是一种Web标准,几乎所有设备都支持它。 AFAIK,iPhone不支持Flash。这是一个快速增长的细分市场,你已经被阻止了。保持简单高效。

答案 6 :(得分:0)

虽然flash在桌面浏览器上无处不在,但移动支持非常有限(flash lite?是的,对吧)。我真的很沮丧地在我的手机上查找一家餐馆,却发现整个网站都是基于闪存的,我甚至无法获得电话号码或地址!

答案 7 :(得分:0)

Flash的一个好处是它有一些帮助安全地进行跨域类型操作的工具,这可能会有所帮助。 Flash也对某些硬件提供(有限的)支持,这是Javascript无法实现的。

就个人而言,在尝试使用Flash之前,我会尝试使用尽可能多的Ajax。从UI的角度来看,控制和基本创作更加发达是更好的。 Sound Manager项目是有效使用少量Flash同时将剩余部分保留在Javascript中的一个很好的例子。

答案 8 :(得分:0)

我怀疑javascript越来越受欢迎的一个原因是它更容易改装到现有的应用程序中。

答案 9 :(得分:0)

由于我无法接受两个答案,我将在自己的帖子中合并Christ Upchurch's17 of 26's个答案。我想,这两者几乎总结了我想知道的东西。谢谢你们!

答案 10 :(得分:0)

如果你经常处理多边形,那么Flash仍然更容易编程和调试。使用AJAX,有很多库可以处理多边形,但是你的应用程序使用的库越多,它就越慢。