IT学习者 | 站长学院 | 技术文档 | 成语 | 歇后语 | 桌面壁纸 | 天气预报 | 帝国时代 | 生日密码 | 代码收藏 | 厦门天气 | IP地址查询 | 生活百科

AJAX的七宗罪

【 来源:嘟嘟老窝 作者:佚名 更新时间:2006-05-15 | 字体:

引子

2005.2.18,Jesse James Garrett 的一篇A New Approach to Web Applications引出了AJAX这个web界的新名词。加上新宠儿在降生下来就和足球名队阿贾克斯Google Suggest  Google Maps这些大腕息息相关,不想出名都难啊。但似乎人们给与AJAX的期望有点太高了,甚至有人提出了用AJAX取代Java Applet和Flash。不知Flickr是不是也听到这种呼声才把自己的Flash UI转向了普通的javascript。AJAX是个伟大的东西,它是在不创造新技术的前提下诞生的一个标准,凭这一点就能招来大批的狂热追随者,AJAX看起来更像是杨过和小龙女练得玉女素心剑一样,分开来没有什么破坏力,但是二者合一就威力无比。

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

这其实更像一个大大的讽刺,AJAX的鼻祖是Google,但却对Google自己支持最不好了,GMail主界面除过Top和Bottom外没有一个链接就是最形象的讽刺了。虽然Mail本身是个私人的应用系统,但这个无链接的设计界面恰恰给AJAX开了个坏头。Flash也有同样有这个毛病。没有链接的web就像森林中迷路的羔羊,这句看似广告语,其实是web设计的根本原则。

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

javascript本是是个轻量级的小东西,现在被强迫重用起来,负担可想而知。javascript对OOP的支持很少,这就限制了javascript代码的可重用可封装等等,从Google Mpa还是其他一些应用中能看到的都是无数的<script src="..."></script>这样的文件包含,这些除了让程序员头昏的更快点,一点好处都没有。更可怕的是在javascript中竟然没有一款顺手的Debug软件,很多写js的老手到今天还是用最原始的alert("")来调试,splinetech javascript HTML Debugger 算是一个看起来还像个样子的调试器吧,可惜不是免费的,几十大刀让我这种穷人只能望而生叹了。

罪之三:冗余代码更多了

和上面说的差不多,层层包含js文件是AJAX的通病,再加上以往的很多服务端代码现在放到了客户端,所以每次打开一个页面会包含很多的无用的js文件也一同下载下来。虽然宽带越来越普及,但是减少代码冗余还是每个web设计者的必修课。

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

什么叫破坏web标准?<span onclick="location.href='detail/';">点击查看全部</a>,这就是破坏了web标准。好好的A标签放着不用,偏要用span。这种例子很多,flickr中的标题单击后可以更改,这虽然(也包括我)是大家一致叫好觉得方便的设计,但同时这也是歧义了web元素本身的含义,物是人非这个词不知道用的合不合适?

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

哈哈,这句话语有点讽刺意义。现在的浏览器市场,不管是IE还是FireFox还是Opera等等。浏览器和浏览器之间的差异一直都是web设计者心中永远的痛,支持的css不一样,支持的客户端脚本不一样,有的竟然连客户端脚本的用法都有不同。这让程序员非常苦恼,最明显的就是调用xmlhttprequest了,req=(window.XMLHttpRequest)?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP");这段创建xmlhttp对象的代码就是为了适应IE和非IE两天阵营的浏览器的经典例子。说是没有back和没有history的浏览器,这也是一个讽刺,主要是指在AJAX下点击链接是不Redirect页面,所以不存在后退和前进了,同样,没有后退和前进也就无存找浏览历史纪录了。back和history存在的根本就是url的改变,在AJAX下人们发现不改url也同样能达到内容改变这个酷酷的特点,何乐而不为呢?look http://www.dux2005.org/http://www.zagodesign.com/,我承认这两个站确实做得非常棒,但除了酷酷的感觉外,毫无用处。

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

xml从诞生那天起就被一致看好,大有非xml不娶之势,我想Jesse James Garrett也是为了趋于流行才把xml强行加入ajax的吧。xml有一个致命的缺点,那就是加载的资源耗费,这好像是所有平台下xml的通病。google map虽然是Jesse James Garrett推荐的AJAX的品牌代言人,但是gmap并没有用xml,而是用了原生的javascript数组,我自己在用AJAX从服务端传回数据时也从来不用XML,因为它让我更繁琐让系统更慢。服务端首先要调用xml对要传输的数据进行封装,客户端得到数据后再调用xml进行解析,简直是画蛇添足。AJAX的一个重要特点是要身法轻盈,数据的传输尽量单一和简陋,如果确实需要传输大量复杂的数据,也应该通过多次调用传回。

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

AJAX适用于什么?能干什么?能带来什么?在网站上用AJAX那是笑话,除非像Google Map和Flickr这样的专业领域的网站外,普通网站根本没必要用这个技术;在庞大的企业应用市场估计还能有AJAX的一点容身之地,不过在MS、SUN不会看着AJAX这个野孩子来在他们的地盘上撒泼的,如果大家都用AJAX,那java给谁卖?.net给谁卖?所以AJAX在企业应用也不是长久之地。所以,AJAX现在找不到自己合适的位置是个很大的尴尬。疑病乱投医,最近把AJAX的矛头指向Flash和Applet就是一个例子。

当然,我也不是要把AJAX扁的一无是处,我本人就非常喜欢这门技术,它能让web设计者的眼球更加宽广,让一些大胆的设计成为现实,但是我也会很冷静的小心翼翼的利用这个利器,利器虽好,一不留神刺伤的是自己。

PS:这篇文章是昨晚写的,今早却神奇般的从网上看见了一篇文章Ajax: 99% Bad,文章是针对2000年那片著名的Flash: 99% Bad 写的,其中的观点和我所说的七宗罪中的几宗相似。

  • 转载请注明来源:IT学习者 网址:http://www.itlearner.com/ 向您的朋友推荐此文章
  • 文章关键词:  ajax 
  • 特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系我们,我们会尽快予以更正。
RSS订阅
  • 抓虾
  • google reader
  • 鲜果
  • QQ邮箱

音乐
犯贱 月光 包容 想你了 甩葱歌 黄梅戏 爱情错觉 星月神话 这就是爱 最幸福的人 爱笑的眼睛 321对不起 你不知道的事 看透爱情看透你 你还欠我一个拥抱
忐忑 爱过 浮夸 猜不透 洛丽塔 错的人 爱情买卖 和平分手 等你爱我 没那么简单 我的心好冷 姑娘我爱你 在回忆中死去 我的爱情不见了 你在我心中是最美
她说 偏爱 素颜 错错错 走天涯 套马杆 断桥残雪 爱是你我 郎的诱惑 客官不可以 我要去西藏 我的好兄弟 哥只是个传说 情歌没有告诉你 我和草原有个约定
天真 王妃 小三 爱琴海 要抱抱 单身歌 埋葬冬天 给力青春 荷塘月色 最好不相见 最炫民族风 新贵妃醉酒 贝多芬的悲伤 大笑江湖主题曲 给我一个理由忘记
加入收藏留言建议ASP探针PHP探针站长Enjoy的BlogAboutDomain
© 2010 IT学习者 - itlearner.com
RunTime:75.35ms