Ajax,用该所用

网络整理 - 07-26

我经历的一个项目倒下了。倒不是因为技术落后,反而是因为技术太过先进——整站,所有前端页面都是Ajax处理而产生的。

我们现来看看Ajax是啥(汗,你以为读者是白痴咩~),根据发明人Jesse James Garrett (jjg)在adaptive path的一篇文章Ajax: A New Approach to Web Applications中定义,Ajax由几种蓬勃发展的技术以新的强大方式组合而成。Ajax包含:

可以看到,这是一种以JavaScript为核心的技术,从广义上说,除了服务器端技术,剩下的都是Web标准。

但上一句话并不是重点,做Web标准的读者不用窃喜。

我们来了解一下Jesse James Garrett的背景,他著有一本有名的书,叫做The Elements of User Experience - User-Centered Design for the Web. 啥?User Experience? 没错,jjg是一位资深用户体验专家。

我没有深入调查过,但我身边的人,接触并运用Ajax的清一色都是程序员。我对程序员当然没有什么成见,但术业有专攻,程序员看到这个Ajax定义,理所当然是从技术上入手,为新技术滥用Ajax不亦乐乎无法自拔而不自知,为Ajax而Ajax,忽略了非技术层面的东西,比如,用户体验和亲和力(accessiblity)。

所以我认为jjg对于他自己发明的Ajax的定义是不及格的。实际上,按照jjg本来的意思,技术也是为用户体验服务的。About Face 2说,Web的出现让交互设计至少倒退十年,Ajax的出现实际上为了弥补这十年而生,让Web界面操作可以一样或至少接近“正常软件”的操作方式。但jjg的定义对技术层面的东西阐述过了头,缺乏用户体验背景的程序员只能依瓢画葫芦,为Ajax而Ajax。

所以我觉得,哪里该用Ajax,怎么使用Ajax,如何才能做到符合用户体验的需求,这是产品/策划的事情。事实是很悲哀的,产品认为这属于技术问题(至少我身边所碰到的情况都这样)而不加过问。我们可以看到很多大举2.0旗帜的网站,看起来很酷,用起来很苦。漫长的等待没有提示,用户未知情的情况下刷新内容,鼠标一不小心就会犯错,不能后退(这倒是普遍问题),不能撤销等等,很多用户患上了2.0恐惧症。

由于我实际上对用户体验并没有研究,不好夸大其词,不好妄加评论,上面只是我的个人想法,有错的话各位看官一定要批评指正,一起学习,共同进步。我着重谈谈亲和力的问题。