防范AJAX风险
由于浏览器和用户都在不断变化,JavaScript、CSS和XHR引擎出现的变化都会给AJAX应用带来微妙的影响。AJAX至少有三大方面的风险: 技术风险、文化/政治风险和营销风险。
● 维护
JavaScript、DHTML和级联样式表(CSS)代码往往会变得复杂、难以维护。一个难题就是,许多开发人员没有使用良好的集成开发环境(IDE)来编写及测试代码。另一个难题是,出于性能上的考虑,需要在脚本中采用需慎重对待的优化技术。这些因素导致了意大利面条式代码(spaghetti code,这种代码的控制缺乏条理),而且长期维护成本高于用更大程度依赖服务器端处理的传统架构编写的应用。风险主要在于,在不断变化的技术环境下,如何长期迅速、有效地维护应用。
浏览器开发商随意改变浏览器运行及解释CSS和JavaScript的方式,这更是加大了维护风险。微软或者Mozilla偶尔会堵住某个安全漏洞,或者“修补”某个CSS问题,从而打乱了某种技术或者方案的计划。这方面的一个例子是Mozilla对剪贴板的使用就至少有过一次变动。另一个是IE 7中对DHTML盒模型(box model)的变动。随着微软实现更符合标准的CSS,基于较旧、错误较多的模式而构建的许多Web应用会受到破坏。
风险在于,由于浏览器出现的变动,企业必须迅速地频频采取对策,处理突如其来、出乎意料、成本高昂的维护工作,而难以维护的意大利面条式代码更是加大了困难。
● 向前兼容
向前兼容涉及维护风险。随着新的浏览器和操作系统登台亮相,AJAX应用的有些部分可能要改写,以适应布局引擎、CSS解释器以及JavaScript、XMLHttp和DHTML等底层机制出现的变化。在过去,Opera和Safari等早期阶段的浏览器一直很差,因为它们随意改变CSS把元素放在页面上的方式,IE7也是这样。这会影响成本的控制,因为这本身是无法预测的。相比之下,向后兼容的工作可以进行测试、得到比较准确的估计。不过值得一提的是,开发商总是提供新版本浏览器的公共测试版。
● 第三方工具的支持及废弃
虽然采用Dojo或者Script.aculo.us等第三方工具可以“免费”为应用添加诸多功能,但同时也会带来固有风险。而且,由于第三方工具的黑盒子性质即未知性,几乎不可能为它们排除故障。美国一家电子商务公司采用Dojo后,只好请要价不菲的顾问乘飞机过来,解决这个框架存在的问题。故障得到了解决,结果查明罪魁祸首是这个框架,幸好这个项目还没有带来大笔的意外费用。
如果框架没有以用户希望的速度及时维护,或者在将来的开发版本中未得到支持,废弃框架也会在将来带来问题。如果出现打乱计划的情况,譬如浏览器或者操作系统升级,这个问题就会令人特别头痛。添加特性或者改进功能能力需要请来深入了解相应工具的开发人员。
文化和政治风险
● 可培训性
在公共互联网上,应用使用者一般是不可培训的,因为他们一开始与开发商的关系就不牢固。用户群的可培训性取决于这种关系的性质、他们自己要学习的动机、所需培训的深度,当然还有注意力集中的时间长度。Web应用方面的培训包括: 现场演示、嵌入式Flash影片教程或者说明手册。在面向消费者的应用中,切换成本一般很低,用户也没有多大动机去适应一种新的界面或者工作流程。
在企业内部,我们对自己用户的影响力一般大于企业外部对大众消费者的影响力。换句话说,我们促使内部用户学习一种新界面的能力更强。话虽如此,也不能低估促使用户接受的重要性。最终用户的抵触是软件项目失败的主要原因之一。
法律
Web可访问性这个问题把法律环境与Web应用设计的技术世界联系在一起。在美国,《康复法案》的第508条规定了政府组织如何构建软件、限制富互联网应用(RIA)的使用。有些公司也许认为: 因为自己属于私营部门,不会遭到诉讼。实际上,已有人根据《美国残疾人法案》(ADA)以网站无法访问为由起诉私营公司,譬如2006年轰动一时的Target公司网站卷入纠纷的案例。随着RIA变得习以为常,可访问性会越来越成为关注的话题。幸好,一些重要组织正试图通过更新立法和软件解决方案来解决这个问题。
- 本文关键词:

