锁定老帖子 主题:给Ajax技术初学者的一些建议
该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2007-05-13
dlee 写道 引用 不要以为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的内涵要比你知道的一点东西多得多。你不过只是一个经验主义者而已。 This is the 27 February 2007 Last Call Working Draft of The XMLHttpRequest Object specifcation. Please send comments to public-webapi@w3.org (archived) with either [XHR] or [XMLHttpRequest] at the start of the subject line by 2 April 2007. 感觉Microsoft为AJAX做出了不可磨灭的贡献,2000年的时候,IE5开始支持了XMLHttpRequest,2007年乌龟星球上的委员长们才开始制定规范. 在MS里,倾向用Ajax(jax小写),而不是AJAX,这意味着XML可能从AJAX中淡出. |
|
返回顶楼 | |
发表时间:2007-05-13
我对AJAX不是很熟悉,在此也发表一点自己的看法,有误论请指正。
在上面jindw把ajax当作是DHTML的延伸,从技术上来看,这种看法应该是正确的,然而我认为并不能将ajax仅仅当作一种技术来看待,在很多人的概念里面,ajax就是XMLHttpRequest,这更是谬误,没有XMLHttpRequest,也许就不可能有今天的ajax,但是ajax并不是XMLHttpRequest(至少我是如此认为),我觉得更应该将ajax提升到一个解决方案或思想的层次上,一个通过javascript解决实际应用中各种问题的一个整体方案,因为ajax,REST架构得以完好的实现,企业应用从服务器端转移到客户端,但它没有新的东西,更多的是对各种技术的融合,它是一个方案一个思想,通过对旧有技术的完好整合,把web应用提升到了一个新的层次。 总的来说,ajax让我们看到了一直存在却又一直被忽视的东西,也许有一天javascript被替代,XML被替代,而如果替代这些技术的技术仅仅只是为了让开发类似ajax应用的方式更简单更容易,没有了javascript没有了xml,ajax的名字也不再适合,那么ajax应用是否就真的从此消失了?也许在每个使用新技术的应用里,所带给用户的体验就是ajax应用所带来的体验,仅仅只不过是利用新技术开发这些应用比javascript+xml更简单更容易罢了。是否该埋怨ajax的名字起得不好呢?呵呵。 |
|
返回顶楼 | |
发表时间:2007-05-14
ray_linn 写道 感觉Microsoft为AJAX做出了不可磨灭的贡献,2000年的时候,IE5开始支持了XMLHttpRequest,2007年乌龟星球上的委员长们才开始制定规范. 在MS里,倾向用Ajax(jax小写),而不是AJAX,这意味着XML可能从AJAX中淡出. 微软可没这么做 你好好看看它的代码和帮助吧。 微软的目标确实是想让ajax退出来 他的工具就是xaml。 和本版宣传jsi的弟兄的思路大同小异 核心思想都是用xml来包装和描述ajax组件 从而提高js或者其他控制脚本的维护性和易用性。 微软直接借用操作系统的优势实现的功能更强大 效果更好一些。 但是凡事都有两面 负面效果就是灵活性差 一旦开发思想再有革命性的突破 这个东西就是马奇诺防线 |
|
返回顶楼 | |
发表时间:2007-05-14
不否认新的技术更先进。但JavaScript由于先天的优势(几乎100%的浏览环境都支持),其发展还在进行中。任何其它需要外置组件支持的技术,要动摇这个位置..恐怕不是说做就做到的
|
|
返回顶楼 | |
发表时间:2007-05-14
dlee给ajax的初学者的建议很不错。
后边大家辩论的焦点不是在如何学好ajax上,哈哈。 ajax好不好一个人一个看法。 |
|
返回顶楼 | |
发表时间:2007-05-14
dlee 写道 micrexp 写道 我干嘛要把你绕进去.......
XMLHttpRequest对象的广泛应用是产生Ajax技术的必要条件(注意,IFrame并不足以催生出Ajax这样的技术来,因为它本身存在着巨大的缺陷),也是Ajax技术最核心的部分,但是Ajax的思想现在已经远远超出了XMLHttpRequest了,例如通过动态创建Script标签请求某个服务器暴露出的JSON服务,仍然属于Ajax。Comet或者HTTP Streaming也属于Ajax。 你认为Ajax仅仅停留在10年前通过IFrame实现聊天室的阶段,没有任何发展,这是你自己认识的缺陷。 dlee兄,IFrame确实不如XMLHttpRequest易用,但IFrame也没有你想象的那么脆弱,一个封装良好的IFrame Ajax通道,可以和XMLHttpRequest一样好用。我这个7wxAop框架由于设计得比较早,用的就是IFrame,在7年20多个7wxAop项目和产品开发中,除了连接超时提示不好实现外,还没碰到IFrame解决不了的问题。但是像连接超时提示这样的硬伤,XMLHttpRequest也有,比如含文件上传的表单提交,XMLHttpRequest就无法实现,还得靠IFrame。 micrexp 说IFrame能设置HTTP头标和方法,我也是第一次听说,感觉应该不可能。 但是客户端控制请求头标和方法,我想不出在Ajax中有什么实用价值。我甚至认为: 1、Ajax应用的服务器端根本不需要支持POST之外的HTTP方法,包括GET。 2、Ajax应用的服务器端根本不需要支持200之外的返回码,包括404。 也就是说,Ajax协议只需要用到HTTP协议的小小子集,不知到Ajax社区目前有没有人做这方面的研究。 |
|
返回顶楼 | |
发表时间:2007-05-14
libai 写道 micrexp 说IFrame能设置HTTP头标和方法,我也是第一次听说,感觉应该不可能。
但是客户端控制请求头标和方法,我想不出在Ajax中有什么实用价值。我甚至认为: 1、Ajax应用的服务器端根本不需要支持POST之外的HTTP方法,包括GET。 2、Ajax应用的服务器端根本不需要支持200之外的返回码,包括404。 也就是说,Ajax协议只需要用到HTTP协议的小小子集,不知到Ajax社区目前有没有人做这方面的研究。 这个需求对于REST风格的架构设计来说是一个必须要满足的需求。等看到我们翻译的论文后我们再来作深入的讨论。要理解这个需求为何是必要的,还是要深入理解REST和HTTP本身的设计才行。将来我也会说说为何XMLHttpRequest对象的出现使得REST风格的架构设计成为了可能(传统的基于HTML表单的交互方式是无法做到的,因为REST架构需要客户端和服务器端的协作才能够实现)。 我非常希望与libai、ray_linn等经验丰富的朋友多交流这方面的话题。等先把要做的几件事情完成了再说。 |
|
返回顶楼 | |
发表时间:2007-05-14
to dlee:
祝你们的REST论文翻译工作早日完成。 从我的理解看,REST所要强调的主要问题是固定URL、缓存、集群、性能扩展,侧重的信息查询类业务;而ajax企业应用中查询类业务只占小部分,大部分是更新类业务,因此REST约束并不能解决ajax应用的主要问题。 从我的实践看,ajax Server并不需要支持完整的HTTP协议,如果有可能,设计一个compact Http server做ajax后端更合适。 我认为,要更深入、更好的改进ajax通讯及服务器端架构,需要从实际出发,即从Ajax Request(Ajax客户端发出的HTTP请求)出发,采集足够多的Ajax Request 样本,分析这些样本的功能、上行数据、下行数据、与普通HTTP请求的差异,由此来决定Ajax Server应该是什么样的。如果有需要,我可以贡献目前7wxAop框架所带实际应用Studio/DBView/FileView/CMS/BBS/User中的将近300个Ajax Request的相关代码以供研究。 据我所了解的,目前即使国外,对Ajax后端架构的深入研究也很少(像REST理论还是很早的东西)。我预计,在Ajax/RIA前端架构之后,Ajax后端架构在今后两三年会成为技术热点。 |
|
返回顶楼 | |
发表时间:2007-05-14
可以肯定的是,REST风格的架构设计对于面向Internet的Web应用来说,是极其重要的,尤其是一些高并发高访问量的网站。
REST风格的Web Service目前还没有进入到企业应用,企业应用的异种系统集成仍然被基于SOAP的Web Service所统治,这是因为历史原因和IBM、M$等大厂对于SOAP的支持有关。IBM和M$是SOAP最大的两个支持者,所以SOAP还会存在很多年。另外,选择SOAP目前在政治上是正确的。IBM和M$都在推这个技术,有问题了肯定不是选择这个技术的人本人的问题。 不过,REST进入企业应用只是一个时间问题,SOA完全可以建造在REST风格的Web Service之上。 |
|
返回顶楼 | |
发表时间:2007-05-14
leebai 写道 to dlee:
据我所了解的,目前即使国外,对Ajax后端架构的深入研究也很少(像REST理论还是很早的东西)。我预计,在Ajax/RIA前端架构之后,Ajax后端架构在今后两三年会成为技术热点。 不用等那么久。 现在就有很多 |
|
返回顶楼 | |