我的“Ajax”历程
年底不是太忙,写了一个仿windows的b/s软件管理界面,主要实现了三种菜单,即下拉菜单、树形菜单与右键菜单; 前面的文章将代码也都发了出来;
有些朋友也向我请教关于Ajax的问题,当我回答,“其实我并没有用Ajax”时,他们表示奇怪,其实,也没有什么可奇怪的。Ajax是什么?(Ajax 是 Asynchronous JavaScript and XML(以及 DHTML 等)的缩写)。第一个字母A,即asynchronous,中文为“异步”,没有实现异步,仅仅用JavaScript写一些客户端脚本,这不算Ajax的;不喜欢往自己脸上贴金,不是就是不是。
你可以认为我在用Ajax,因为我的确用到了其中的一些技术,如JavaScript、XML与DOM;但严格来说,我这些还不算Ajax,因为,到现在为此,我这个管理界面,并没有用到Ajax的核心技术,即xmlHttpReques对象,我所有的数据读取都是同步读取,并不是异步,这也是为什么有些朋友反应网页打开太慢的原因。
我不清楚,还有多少人对Ajax存在误解;认为写几行javascript就是Ajax了;其实我也对Ajax存在“误解”,因为我常说我自己不会Ajax(我是写C#的),充其量我只是会脚本罢了;而别人总说我是Ajax高手,到底是谁误解谁,我也说不清楚了。
我最早听说Ajax这个词是在06年初,一个同学在QQ发过来,问我“听没有听说过Ajax?”;我说没有,然后,我问另一个朋友,他说,他听说过!好家伙,新名词,别人都不敢问你会不会,听说过的都算高人。
06年下半年时,开始用网上开源的Ajax框架来开发asp.net了,相关Ajax文章也看不过不少了;大致明白是咋回事儿了,无非就是异步读取吗,xmlHttpRequest也不是存在一天两天了,早就有了,我也早就用过,只是用得少,也就知道有这个东西而已,谁知道现如今,老萝卜当人参卖,它成了主角。后来,就没有怎么学过Ajax,开发中用到了,也是用封装好的框架,我是用MagicAjax;
虽然没有去学Ajax,但并不意味着我不会,熟悉Ajax的人应该都知道,Ajax的核心虽然是xmlHttpReques对象,但是它太简单了,并没有什么可研究的,真正难点在JavaScript上;这种以前不招人待见的网页脚本,现在成了b/s软件的一个重头戏;Ajax中的所有东西,不管是异步读取还是分析数据,都得通过它来操作。而我恰恰JavaScript比较熟,恐怕这也是为什么别人说我Ajax学得好的原因吧,说老实话,对于JavaScript也不熟,我只是对脚本语言比较熟悉罢了。
我从事过两年的FlashAs脚本开发,FlashAs与JavaScript有极大的相似之处,都是遵行ECMAScipt脚本语言标准的(As后来偏离标准较多),这也是我学JavaScript没有费什么劲的原因;以至于别人误认为我Ajax学得好,其实,没有直接关系;
说来话长,扯得有些远了。
Ajax只是个名词,不代表什么,它实现了页面无需刷新,便可更新数据的功能,提高了用户体验;那我们假设,如果又有一种新的方法,可以让用户体验更爽,Ajax还会不会存在呢?答案是,“Ajax”不会,Ajax会!
消失的只是“Ajax”这个名词,但它的相关技术是不会淘汰的,JavaScript暂时不会淘汰吧,XML更不会淘汰,要操作XML就要用DOM,也不会淘汰;但是,人们会搞一种更有利于开发的组合方法来提高用户体验,提高开发速度,或者,再加上某个别的新技术,那么一组合,然后,换一个更炫的名字,闪亮登场;
Ajax不就是这样出现的吗,Ajax本身就是一个各项技术名称的组合词,它包括JavaScript、DOM、XML、xmlHttpRequest等等;合一起叫Ajax;那说不定以后,另外各种技术再一组合,不就又出一新词。可见,淘汰的只是名词,而不是技术,打好基础才是重要的。如果上述各项技术都很熟的话,Ajax不Ajax的,有什么关系呢?灵活运用才是最重要的,就算加一两个新技术,也不会太吃力。
当年我搞FlashAs时,有个名词叫RIA,就是富英特网;通过使用Flash,来实现无刷新的网站;也是为了提高用户体验,Flash效果可以做得很炫,比Ajax强太多了,也曾风行一时。但是,Flash RIA解决方案也存在先天问题,以至于Ajax后来居上,对我来说,好像没有什么本质的影响。并没有因为从一种环境换到另一种环境而不适应,都是在用脚本编程,As、Js各有千秋,但也大同小异。
b/s软件越来越普及,软件的表示层开发也显得越来越重要了,表示层的开发自然要做得人机交互更好,界面更漂亮,要想实现更好的用户体验,不管是RIA还是Ajax,都是要考滤的,微软也在计划下一代的产品,很多人很期待,希望功能更强,更炫,但是,不管再变化,万变不离其宗,微软傻瓜式的开发方式,只会让我们堕落。
唉,又扯远了;
本来是说一下自己的Ajax历程的,说来说去,其实我没有真正搞过Ajax;我的空间也没有Ajax的栏目,只有JavaScript与XML栏目;
最后说一下,我到现在,还不会用Ajax.net,听说它很简单,拖拉拽就可以搞定,一直没有时间去学,呵呵;
明天的任务是把那个管理界面实现异步数据读取,终于真正的搞一次Ajax了。