服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > 专题栏目 > WEB2.0新技术 > 查看文档

ajax的七宗罪

  ajax是个伟大的东西,它是在不创造新技术的前提下诞生的一个标准,凭这一点就能招来大批的狂热追随者,ajax看起来更像是杨过和小龙女练得玉女素心剑一样,分开来没有什么破坏力,但是二者合一就威力无比。

  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还是其他一些应用中能看到的都是无数的 这样的文件包含,这些除了让程序员头昏的更快点,一点好处都没有。更可怕的是在javascript中竟然没有一款顺手的debug软件,很多写js的老手到今天还是用最原始的alert("")来调试,splinetech javascript html debugger 算是一个看起来还像个样子的调试器吧,可惜不是免费的,几十大刀让我这种穷人只能望而生叹了。

  罪之三:冗余代码更多了

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

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

  什么叫破坏web标准?点击查看全部,这就是破坏了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设计者的眼球更加宽广,让一些大胆的设计成为现实,但是我也会很冷静的小心翼翼的利用这个利器,利器虽好,一不留神刺伤的是自己。

扫描关注微信公众号