ajax有罪?说点反对意见

刚刚看到

http://duduwolf.winzheng.com/post/115.asp

说点反对意见。

罪之一:对搜索引擎的支持不好

为什么要支持搜索引擎?为什么不是搜索引擎支持站点?别忘了,是先有的站点,然后才有的搜索引擎。搜索引擎不能适应网站的发展,那自然是搜索引擎的问题。事实上,据一些迹象分析,google似乎已经通过mozilla的的script解析器来抓去网页内容。

进一步说,希望搜索引擎抓到的东西,就别用ajax了。不过,凡是需要ajax的地方,如果不用ajax,似乎完成的方法也是使搜索引擎抓不到的办法。

罪之二:编写复杂、容易出错

复杂吗?ajax把部分逻辑放在了客户端,过去,这些用户界面的逻辑也要放在服务器端,哪个更复杂一些呢?
我看ajax这种方式才是符合mvc架构的思想。至于调试,unix程序员都是靠print()和log来调试的。谁在字符界面下用debugger呢?其实,如果不是gui和逻辑再加上多线程混在一起,大部分情况没有用debugger的需求,在关键的点获得关键的值,这才是所谓调试的核心工作。 firefox的js console加上alert或是textarea输出,足够了。

罪之三:冗余代码更多了

同上,ui代码放到客户端,减轻了服务器的运算压力和带宽占用。比起aspx的不停的往服务器进行数据请求的所谓服务器控件,ajax强得太多了。

罪之四:破坏了Web的原有标准

<span> 一样可以用<a>完成,用户动作->事件->数据,这是接近于传统应用软件的模型,事件驱动是非常好的架构,其实,w3c也在制定事件标准,但支持还不够广。大家说了很多年富客户端,没想到用几件东西拼拼凑凑就能实现,这有什么不好呢?

标准也是在进化的。

罪之五:缺少一个没有标准之争、没有back和history的浏览器

这涉及到具体的应用环境,有些时候,我们就希望浏览器没有back和history。不要只去看cool的一面,要去看放在典型应用环境的地方。比如gmail,说了这么多,有没有人觉得他不好用?反正我是很喜欢。

罪之六:XML只是用来打幌子

这条罪名只是用来打幌子。

只驳斥2点。
1 xml是用来描述复杂数据的,不是用数组就能装下的那种简单数据。数据足够复杂的时候,你自己处理数组的效率,我相信不会比得上dom或sax。
2 服务器端封装xml,谁说非要使用xml解析器了?直接用字符串拼接行不行?解决问题的方法是多种多样的。

罪之七:世界这么大却找不到自己的家

是吗?

java和.net,与ajax似乎并不冲突吧?相反还应该是有利的补充。要说刺,顶多也是刺到了.net的服务器控件。sun的态度,应该是非常欢迎ajax的。不信?看这是什么?  

一个flash占用的客户端运算能力有多大,占用的带宽有多大,刷新一次一个500k的页面需要多少客户端运算能力,占用的带宽有多大?同样情况ajax呢?算一算就清楚了。

综上,总结几点

1 请分清楚服务器和客户端
2 请搞清楚web程序到底在做什么
3 请想一想web应用(特别是server-side)的瓶颈和最大负荷在那里
4 任何技术都不是万能的,凡事均有其典型应用场景。炒作名词中国人最热衷的,抨击也是。

posted on 2006-09-21 22:26  BlueRain  阅读(111)  评论(0)    收藏  举报