论坛首页 Web前端技术论坛

给Ajax技术初学者的一些建议

浏览 65461 次
该帖已经被评为精华帖
作者 正文
   发表时间: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中淡出.
0 请登录后投票
   发表时间: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的名字起得不好呢?呵呵。
0 请登录后投票
   发表时间:2007-05-14  
ray_linn 写道

感觉Microsoft为AJAX做出了不可磨灭的贡献,2000年的时候,IE5开始支持了XMLHttpRequest,2007年乌龟星球上的委员长们才开始制定规范.

在MS里,倾向用Ajax(jax小写),而不是AJAX,这意味着XML可能从AJAX中淡出.


微软可没这么做 你好好看看它的代码和帮助吧。

微软的目标确实是想让ajax退出来 他的工具就是xaml。 和本版宣传jsi的弟兄的思路大同小异

核心思想都是用xml来包装和描述ajax组件 从而提高js或者其他控制脚本的维护性和易用性。

微软直接借用操作系统的优势实现的功能更强大 效果更好一些。

但是凡事都有两面 负面效果就是灵活性差 一旦开发思想再有革命性的突破 这个东西就是马奇诺防线

0 请登录后投票
   发表时间:2007-05-14  
不否认新的技术更先进。但JavaScript由于先天的优势(几乎100%的浏览环境都支持),其发展还在进行中。任何其它需要外置组件支持的技术,要动摇这个位置..恐怕不是说做就做到的
0 请登录后投票
   发表时间:2007-05-14  
dlee给ajax的初学者的建议很不错。
后边大家辩论的焦点不是在如何学好ajax上,哈哈。
ajax好不好一个人一个看法。
0 请登录后投票
   发表时间: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社区目前有没有人做这方面的研究。
0 请登录后投票
   发表时间: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等经验丰富的朋友多交流这方面的话题。等先把要做的几件事情完成了再说。
0 请登录后投票
   发表时间: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后端架构在今后两三年会成为技术热点。
0 请登录后投票
   发表时间: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之上。
0 请登录后投票
   发表时间:2007-05-14  
leebai 写道
to dlee:
据我所了解的,目前即使国外,对Ajax后端架构的深入研究也很少(像REST理论还是很早的东西)。我预计,在Ajax/RIA前端架构之后,Ajax后端架构在今后两三年会成为技术热点。


不用等那么久。 现在就有很多
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics