我正在考虑创建一个具有Facebook复杂性的网站,该网站应该可以扩展到数百万用户.我的问题是:除了明显要求每个人都安装Flash并且不必依赖Adobe之外,是否有任何理由不将Adobe Flex用于这样的大型项目?在我看来,Adobe Flex会减少Facebook的服务器负载,因为我可以在客户端完成更多的工作.你同意吗?
当然Facebook可以在Flash中实现.但问题是它会成功吗?谷歌,Facebook和雅虎等大型网络公司都有理由尽可能少地使用Flash.
我最担心的是疏远用户.Flash插件并不是最好的软件.它很慢,很可能偶尔会崩溃.如果您的应用程序变大,您可能会获得一些用户可能无法接受的加载时间.另外在我看来,完整的Flash网站感觉不对,因为它们的行为与HTML网站不同.Google,Flickr,Stackoverflow或Facebook等所有优秀网站都非常轻巧,非常优雅,非常优雅,可以提供极佳的可用性.
然后HTML和JavaScript更加灵活.您想在smartphonse上使用您的网站吗?iPhone没有闪存,甚至手机都有问题,用户很可能会讨厌一个完整的Flash网站,因为这些手机并不一定能像Flash一样扩展Flash,而且Flash会像疯了一样吸引电池.如果有人提出像智能手机这样的另一场革命,你可以肯定它支持HTML和JavaScript,但你不能对Flash这么肯定.
那么问题是你如何获得任何效率?当然,您可以使用Flex编写UI,只需调用非常轻量级的Web服务,就像将它们用于AJAX一样,您甚至可以在本地缓存一些站点内容,这样就不会为了用户交互而传输更多数据( UI只传输一次).但你也可以用JavaScript做到这一点.您可以用HTML和JavaScript编写UI,加载一次,然后从服务器中提取裸JSON数据并使用JavaScript渲染它.您还可以提前获取大量此类数据以减少请求数量.但这种方法仍有其缺点.您是否注意到当您在stackoverflow上键入答案并且其他人提交答案时,您会在输入答案时收到通知.这样的实时功能非常酷,您可能希望在某个时间点使用此功能,这意味着更多的服务器交互.
但无论您做什么,如果您的网站增长,您的服务器仍然需要扩展.即使您最大限度地减少了攻击服务器的GET请求数量,当您的网站受欢迎时,它们仍然会增长很多,而您需要大量服务器来处理您,这只会提高您的用户/服务器比率.
最有趣的一点是,Flex比AJAX更容易编程(例如考虑浏览器不兼容性),但AJAX不仅被发明,而且整个世界都混淆了随之而来的所有问题,而不是使用Flex.我认为这可以说明在Flash中创建完整网站时获得的结果的价值.