« 你真的需要flash吗? | Main | Bindows 很强,然后呢? »

ajax有罪?说点反对意见

作者:virushuo 发表于 2005-05-19 20:05 最后更新于 2005-10-18 17:10
版权声明:按照by-nc-sa的cc协议可转载,拒绝采用“独家” 授权媒介(含网站和平面媒体)转载、引用、链接,除非获得本人许可。转载时请务必以超链接形式标明文章原始出处和作者信息及本声明。


 刚刚看到

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 任何技术都不是万能的,凡事均有其典型应用场景。炒作名词中国人最热衷的,抨击也是。


相关文章:

TrackBack

Listed below are links to weblogs that reference ajax有罪?说点反对意见:

» ajax有罪?说点反对意见 from 百忍学院
刚刚看到

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

说点反对意见。 [Read More]

blog comments powered by Disqus
CC License. Some rights reserved.
署名·非商业用途·保持一致
本站之所有未作特别说明的内容均使用 创作共用协议.
POWERED_BY_MT_3.2