锁定老帖子 主题:给Ajax技术初学者的一些建议
该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2007-05-12
dlee 写道 micrexp 写道 我认为Ajax的核心是对HTML文档模型的操作.XML只能算是一个辅助!
那是DHTML,诞生于10年前的古老技术。 没有XMLHttpRequest就不会有Ajax。 用iframe一样可以实现AJAX,AJAX其实几年以前就出现了 最初的无刷新聊天室其实就是 |
|
返回顶楼 | |
发表时间:2007-05-12
micrexp 写道 用iframe一样可以实现AJAX,AJAX其实几年以前就出现了
最初的无刷新聊天室其实就是 这是强辩。 IFrame的通信能力是非常有限的,对于通信能做的控制非常少。IFrame的这种用途其实超出了它本身最初的设计范围,具有潜在的危险性,使用起来也不是很方便,因此这种做法通常被看作是一种hack。正是看到了这种需求,M$才顺应Web开发者的要求,在1999年为IE5.0添加了XMLHttpRequest对象(当然,那时候还不叫这个名字),XMLHttpRequest是专门用来做Web Remoting的,而且允许对于通信进行非常细致的控制。XMLHttpRequest可以做的控制包括: 1. 可以设置异步的回调函数。 2. 可以根据状态代码判断通信进入了哪个阶段。 3. 若状态代码为4,则可以确信请求肯定是成功的。 4. XMLHttpRequest对象可以使用HTTP的所有的方法(GET/POST/PUT/DELETE/...) 5. XMLHttpRequest对象可以访问并设置HTTP头信息。 6. XMLHttpRequest对象对于数据的传输提供了更好的支持,它支持所有纯文本格式数据的传输,对于JSON和XML数据的支持要比IFrame好的多。你误以为XMLHttpRequest只能支持XML数据,说明了你现在对于Ajax还一无所知。 从上面这些特点来看,在有了XMLHttpRequest之后,不使用这个对象,而仍然使用原始落后的IFrame来进行通信是很奇怪的(有着严重的自虐倾向,好的不肯用,一定要用差的,为了显示出自己特别牛x?)。 在2001年,Mozilla1.0也支持了具有相同接口的对象,取名叫做XMLHttpRequest对象(这是它的正式名称的由来),后来的几年中,Opera、Safari等其他主流的浏览器也逐渐支持了这个对象。在2005年Ajax术语出现的时候,所有主流的浏览器都能够支持这个对象了。 虽然在2005年Ajax术语出现之前,使用这种方式做开发的人很多,但是都是以一种半公开的方式,缺乏广泛的交流和相关的理论建设。直到出现了Ajax这个术语,并且业界知名的大公司如Google、Yahoo!等利用这种技术建造了一大批令人印象深刻的Web应用之后,Ajax才进入了Web开发的主流。随后对于Ajax的研究也逐渐系统化、理论化,今天已经没有多少人敢于把Ajax开发称作是一种hack,做Ajax开发基于100%的Web标准(包括XMLHttpRequest对象在内),是光明正大的、严肃的开发。而且Ajax开发的理论建设也取得了长足的进步,包括架构的设计、各种设计模式、最佳实践也都浮现了出来。现在的Ajax开发已经走入了一个良性循环的发展道路,必将随着Web标准和浏览器的发展,还会继续取得长足的进步。 |
|
返回顶楼 | |
发表时间:2007-05-12
dlee 写道 micrexp 写道 我认为Ajax的核心是对HTML文档模型的操作.XML只能算是一个辅助!
那是DHTML,诞生于10年前的古老技术。 没有XMLHttpRequest就不会有Ajax。 不要以为XMLHttpRequest就是AJAX,说白了,在IE下面XMLHttpRequest不过是WINDOWS里面的一个COM组件 我不是说XMLHttpRequest不行,也不是说iframe很好.我也不想争论倒底什么是AJAX,我只会用JAVASCRIPT和浏览器所支持的东西给与用户最好的展现. |
|
返回顶楼 | |
发表时间:2007-05-12
说实话,我对"AJAX"这个名字一直没什么好感,呵呵
但愿不会因为这句话耍被围攻 |
|
返回顶楼 | |
发表时间:2007-05-12
引用 不要以为XMLHttpRequest就是AJAX,说白了,在IE下面XMLHttpRequest不过是WINDOWS里面的一个COM组件
你对Ajax缺乏一些最基本的了解。XMLHttpRequest只是在IE中是以ActiveX技术来实现的,在其他浏览器中是以其他的技术来实现的。目前XMLHttpRequest已经被W3C标准化了(http://www.w3.org/TR/XMLHttpRequest/),各种主流的浏览器(IE、Firefox、Opera、Safari、etc.)都已经能够支持这个对象。 不要以为你知道一些东西就认为自己完全了解了Ajax,实际上Ajax的内涵要比你知道的一点东西多得多。你不过只是一个经验主义者而已。 |
|
返回顶楼 | |
发表时间:2007-05-12
我知道,你是一个理论主义者.
我不认为我完全了解了AJAX,绝对没有.还是那句话,我对"AJAX"这个名字一直没什么好感,所以Ajax的内涵我跟本就不理解 |
|
返回顶楼 | |
发表时间:2007-05-12
dlee 写道 micrexp 写道 我认为Ajax的核心是对HTML文档模型的操作.XML只能算是一个辅助!
那是DHTML,诞生于10年前的古老技术。 没有XMLHttpRequest就不会有Ajax。 我更倾向于吧Ajax看着Dhtml的延伸。 书店里随便翻本打着Ajax标签的图书,里面有多少讲XMLHttpRequest? 能写满个七八页就不错了。其他都是Dhtml的内容。 说Ajax是新东西,更是没什么说服力。 msdn左边那个菜单就是基于XMLHttpRequest的,人家用了多少年了?那些年Ajax在那里? 前些时候在csdn上看到什么Ajax之父什么滑头。扯淡嘛! 改天某位大佬给太阳系取的好听的新名字,在让一些不负责任的垃圾媒体吵作一下,估计太阳系之父就可能腾空出世了!!!! 不过,micrexp的观点我也不全认同。 |
|
返回顶楼 | |
发表时间:2007-05-12
前期 ajax的热点是前台客户端 中期是后台的restful web service
dell有没有自己的ajax技术网站啊 靠书恐怕说服不了楼上的那几位保守派 |
|
返回顶楼 | |
发表时间:2007-05-12
jindw 写道 我更倾向于吧Ajax看着Dhtml的延伸。
书店里随便翻本打着Ajax标签的图书,里面有多少讲XMLHttpRequest? 能写满个七八页就不错了。其他都是Dhtml的内容。 说Ajax是新东西,更是没什么说服力。 msdn左边那个菜单就是基于XMLHttpRequest的,人家用了多少年了?那些年Ajax在那里? 前些时候在csdn上看到什么Ajax之父什么滑头。扯淡嘛! 改天某位大佬给太阳系取的好听的新名字,在让一些不负责任的垃圾媒体吵作一下,估计太阳系之父就可能腾空出世了!!!! 你去找来《Ajax模式与最佳实践》瞧一瞧,看看里面有多少比例是讲DHTML的,还有《Ajax实战》里面有多少比例完全是讲DHTML的。如果你不肯费这个钱,我可以自费买两本书送给你,只要你能给我留下一个通信地址,我的邮箱dlee.cn at gmail.com。 创造Ajax名词的那个人(所谓的“Ajax之父”)是一个咨询顾问,他本人主要不是做技术的,但是其他的一些Ajax图书的作者的技术都非常棒。你盯着他一个人,认为他肯定无法回答你诸如如何建造一个复杂的DataGrid一类的问题,这是很偏颇的观点。 另外,你的那个JSI,其实设计方向有些偏。现在确实需要有一个更高的抽象层能够更紧密地将一些常用的UI组件库(包括Ext、Dojo、Prototype等等)集成在一起,解决它们之间存在的严重的互操作的问题,但是UI组件库主要的一些设计关注,包括分离页面的结构/表现/逻辑,Unobtrusive、Progressive Enhancement、代码的可测试性、可维护性等等,并没有在你的JSI这里体现出来。你一味地强调JavaScript代码本身的侵入性,这是很奇怪的。我以前曾经追问过你为何你认为Dojo的JavaScript代码侵入性很大,而你本人貌似很不屑于回答这样的问题。 使用你的库做开发,开发成本并不会有明显的下降,而且还附带有一些额外的学习成本在里面。DHTML开发我还有一点经验,也许经验没有你丰富,但是我还是有能力区别出好的UI组件和不好的UI组件的。 |
|
返回顶楼 | |
发表时间:2007-05-12
我更倾向于吧Ajax看着Dhtml的延伸。
书店里随便翻本打着Ajax标签的图书,里面有多少讲XMLHttpRequest? 能写满个七八页就不错了。其他都是Dhtml的内容。 说Ajax是新东西,更是没什么说服力。 msdn左边那个菜单就是基于XMLHttpRequest的,人家用了多少年了?那些年Ajax在那里? 前些时候在csdn上看到什么Ajax之父什么滑头。扯淡嘛! 改天某位大佬给太阳系取的好听的新名字,在让一些不负责任的垃圾媒体吵作一下,估计太阳系之父就可能腾空出世了!!!! 你去找来《Ajax模式与最佳实践》瞧一瞧,看看里面有多少比例是讲DHTML的,还有《Ajax实战》里面有多少比例完全是讲DHTML的。如果你不肯费这个钱,我可以自费买两本书送给你,只要你能给我留下一个通信地址,我的邮箱dlee.cn at gmail.com。 引用 不要拿着书就说人,这一个本讲模式的书,耍不是一本开发手册 顺便问一句,这本书里又有多少是在讲XMLHttpRequest? |
|
返回顶楼 | |