00:00
我们首先呢,看我们这个案例里边的几个功能,第一个就是我们在这个注册新用户的时候,注册的话,你要提供一个这个用户名吧,是吧,嗯,我随便输一个,比方输个三个六个A。好,做完之后的话呢,可以给我弹出一个对话框来告诉我此用户名已经存在,当然了这个是一个测试的哈,哎,这个时候呢,底下会有这样的一行字,那很显然这个时候这个页面并没有刷新,在页面没有点这我在我们没有点这个立即注册的这个呃按钮的情况下,它就可以给我们这样的一个提示,这就是一个Ajax操作,这个时候可以给用户带来良好的体验,一个地方,第二个地方,我们在往购物车里边放书的时候,我们看一下啊,加入购物车。
01:00
再点一个大家注意到什么呀,这个时候我点加入购物车的时候,你看我们只看见这个树木在长,包括这个书的名字在变,但这个页面是不是没刷新呢?哎,这也是一个aja。再看一个。这个时候呢,我想使这个书的数量变大,嗯,加注意,我们看到什么呀,我看到这个呃种的本数跟这个总的价格是变化的,但实际上这个页面也没有刷新,哎,这还是一个AX啊,我们今天呢,就来学习这个AX,然后学学好之后的话,大家可可以把这三个地方都加上AX在开发的时候用的非常多,基本上我们每一个项目里边都会有AX,我们现在我们来举一个现实的例子哈,比方说哎,我新浪微博的注册,呃,我随便我敲入一个。
02:03
163.com好了,我想注册的时候的话呢,我加上一个邮箱,我拿掉会给我一个刷新。我这个网不知道能不能连得上啊,能连得上的话呢,后边就会说啊,这个邮箱已经被使用了,这个网有点问题哈,这也是一个aja啊,有这也是一个aja的操作,旁边的那个同学们老师转那个是什么呀?是一个GIF图片,大家懂吧,GIF图片是一个静态,静态的,然后里边感觉能动的一个图片,懂那个意思吧,它可并不是说去怎么怎么样了,然后当你这个信息返回的时候,那个图片被隐藏了,我们今天也会做出类似的效果来,好了,以上的话呢,就是我们AJX的一些应用。现在我们具体来看一下这个Ajax。什么是AX,什么是HXHX呢是一,实际上以前是一个商标名,大家知道荷兰有一支这个足球豪门叫阿贾克斯,听过吧,阿贾克斯里边培养出了很多这个优秀的天才的这个球星,阿贾克斯那几个词跟这个一模一样,AX那跟泰坦尼克号同期的有一艘这个呃,豪华游轮也叫aja,你可能不知道是吧,嗯,因为它没沉嘛,是吧?嗯,它要是沉了的话呢,你可能就知道了,然后呢,嗯,我们在这个我们的这个外部应用里边啊,这个AX,呃叫异步的JS跟XL的通信,异步的javascript跟XL,你看看哈,这个AX这样写的话。
04:00
我们总是能够这样关联上E步的GS,这个end还作为了这个A的一部分,然后跟XML在我们的这个呃渣那web里边,我们可以这样来解释,现在呢,允许浏览器跟服务器通信而无需刷新页面的技术都称为Ajax,对于这个词哈,叫浏览器跟服务器通信而无需刷新当前页面的技术,我们先前写的凡是要发请求的话,是不是必然要点一个超链接或者是一个提交按钮啊,你不要刷新吧,现在不用。页面不刷新,我就可以跟服务器端进行通信,这就是HX,那HX呢,最早是在这个勾勾里边使用的go勾的这个,呃提示,比方输了一个AX底下会有提示,呃,谷歌先用的,然后他用完之后的话呢,各大厂商迅速的跟进,你现在无论用这个360搜索还是百度啊,都会有这样的功能,还有用地图,我们那个地图出来之后的话,那个地图是不是可以拖拽呀,你拖到一个地儿,这个时候页面很明显没有刷新,哎,这也是一个AX应用的一个实例。
05:19
AX,一种不用刷新整个页面便可以服务器通信的办法。传统的方式,我要发一个请求到服务器,服务器给我返回整个页面,而AX数据在客户端跟服务器之间独立传输,服务器不再返回整个页面。这个是什么呢?我要刷新页面的一部分。怎么刷新呢?使用GS。我通过GS的方式改变当前页面的某某一些节点,比如加一个节点啊,减一个节点啊,改一个文本啊,刚才我在这块的话,实际上是不是就是在这个后边加上一个文本节点啊,就这么一个东西,这就是呃,Ajax技术。
06:13
那如何实现这个HX呢?就比方说可以用这个flash,可以用Java的,可以用这个呃,框架可以用I frame。那么我们真正的指的这个aja,这个实现的话呢,几乎呃100%的说,就是这个xmlhttp request这个对象完全可以当成AX的一个代名词。这个对象啊,并不是GS的一个标准对象,而是对JS的一个扩展,它可以使网页跟服务器端来进行通信,是创建Ajax的一个最佳选择。用这个对象哈,Xmlhttp request。好了,工作原理,客户端用的还是HTML啊CSS啊JS啊好,服务端用JSPASPPHP 3P用什么Ruby啊,用什么都可以,呃,服务器的语言随便中间的传输的话,因为你传输的话,你靠什么呀,你得有一个传输格式啊。
07:28
这个传输格式可以是一般的文本TXT,可以是HTML,可以是XML,还可以是杰森等等等等,这就是整个的一个原理,那么我们传输靠哪个对象呢?哎,就靠这个xmlhttp request。好了,AJX工具包aja X啊,并不是一项新的技术,这个技术呢,是在0506的时候大行其道,那个时候在0506之前,JS的书就是JS,这个javascript没有现在这么流行,那个时候JS的书就那么几本啊,AJX滚范兴起以后,你就上那个书列上去看哈,GS的书特别多,现在也一样,现在的话呢,出了一个新的技术叫NOEGS,大家听过吧,现在也是特别火的一个基于GS的一个这个呃技术,大家看一个技术火不火的话呢,最好的办法就是你去书店里边,你看哪个书卖的多,这个技术一定是比较火的,比方说Java Java的书基本上就是会占据一一个展台啊,特别特别多。
08:40
所以说Java目前是非常火的,Java这个火爆程度的话呢,可以一直的持续下去,为什么呀。因为Java是开源的,他每年都会发布新的版本。每年都会针对技术的改变来做一些变革,所以说这个的话呢,大家尽可能的去放心,我们知道我们用那个,那谷歌的安卓系统的时候,安卓用时间长了是不是卡呀,现在安卓的话呢,已经呃,谷歌已经有了比较好的解决方案,在这个呃,安卓4.4里边,那即便是512兆内存的话,也可以流畅的来进行运行,这就是他把底层的一些东西给改了,所以说你现在动不动就两个G内存,三个G内存完全可以做到如丝滑般流畅是吧?嗯,这个流畅程度的话呢,会跟苹果比较接近,就是安卓一定会越一定会越做越好。
09:38
有什么道理吗?因为它是开源的,这是非常非常重要的一点,当然了,苹果我们开始的时候,我们不是特别看好的这个。Is,为什么它它是不是封闭的呀,就是一家工程师,当然这个全这个全世界顶级的是吧在做,但相对于开源的话呢,我们主角的它要差一点,但起码目前苹果每年都会给我们惊喜。
10:01
比方说这个指纹识别是吧,大家如果要是说现在实现指纹识别的手机的话呢,有两款,一个是iPhone的5S,还有一个HTC的。HP4万万有一,还有一款叫max最大的,它那个特别奇葩是吧?在这个摄像头的下面加了一个这个指纹识别,还需要这样去划苹果这个这样一点就可以,嗯,这就是技术的这个变更,苹果每年都会给我们惊喜,嗯,没办法是吧,苹果现在还在引领这个,引领这个潮流,但是像这样伟大的公司是吧,确实是值得我们每个人去尊敬,但这个Java跟这个呃,安卓也是完全没问题的是吧,安卓的这个市场占有率已经告诉我们了,它是完全可以改变世界的,像像小米就是借助于这个安卓手机的普及,雷锋雷锋雷军说了一句话是吧,想火的话呢,就是站在台风口,在台风口的话呢,猪都会飞起来。
11:07
他认为选择比努力重要,这个我们回头跟跟大家交流啊,我们说AXAX呢,并不是一项新的技术,它用的是以前记录的一些整合服务器端,呃,随便用什么语言都可以。所以说我们选用的话呢,就是这个Java语言跟JSP都可以,然后XML。它是作为一个什么呀,它是作为这个,呃,服务端跟客户端之间传输数据的一种格式,就是你传数据靠什么格式传呢?最初的时候靠的是XML,现在绝大部分靠的是杰森。一般的文本,因为这XMLXML啊,太笨重了啊。但是我们最开始讲的话呢,我们还是会讲到这个XML,然后XHTML跟CSS在页面上做显示,就是正常的HTML了,呃,Do跟GS,我们做这个,呃,实现显示跟交互,以及绑定和处理所有数据,然后我们用了xml htp request对象来做这个异步数据的读取,我发请求,然后拿结果,靠的是这个xmlhtp request,但这个HX的话呢,它是有缺陷的,任何一个好的技术是吧,任何一个好的idea他一定都是有缺陷的。
12:38
那缺点是什么呢?比方说呃,GS跟这个AX引擎可能会导致浏览器的兼容性问题,那现在这个问题基本上不用考虑,因为我们现在是不是有GX框架呀,比方说像解query啊,像这个ext啦啊,他们可以很好的解决浏览器兼容性问题,还有一个这个是确实的哈,你是一个局部刷新导致后退不好用。
13:04
比方说我删了一个这个,呃,用户的信息,这个时候我们要是想看以前用户信息在哪呢?你可以按回退,起码你还可以看见以前那个信息的样子吧,你现在要是删了的话,就真删了,因为后退那个不好用。但是我们现在也有一些办法去去去解决,但是比较麻烦,嗯,对流媒体的支持没有flash跟这个Java APP好。一些手持设备的支持性差,以前的这个手机啊跟PDA啊会有这样的问题,但是我们在这个BS项目里边大量的会会使用HX,所以说我们在这个基于网页的这个BS项目里边,我们可以大胆的用,基本上没有什么问题。
我来说两句