我有一个猫我小时候叫阿贾克斯。啊哈!你哭了,你用那个希腊小伙子的名字给他取名,是吗?事实上,没有。我父母给他起了名字;他们以一艘船员在第二次世界大战-该船的名称可能有明显的来源;我不知道。我的下一只猫(也是现在的猫)的名字降到了我所以他被称为更平凡的人:喷气机;因为他是黑人。
我要说的Ajax实际上是一个缩写词。还有一个。当然,这与电脑有关。对不起的。那么,这是什么AJAX公司我在说什么?这是博客世界上最新流行的一个词,它也与那个玩草稿的家伙无关阿基里斯每个人似乎都想参与其中,尽管首字母缩略词只存在了几个星期。全称为:
- 异步
- 通常,在浏览时,你习惯于同步工作:你点击一些东西;它强制页面重新加载;你等等。在同步场景中,您和服务器轮流工作。在异步场景中,浏览器静默地与服务器以一种不应该影响你正在做的事情的流程的方式。
- Java脚本
- 上的任何编程客户端最好使用javascript。这种语言(或者说是对它的支持)在过去几年里取得了长足的进步,为了使用恰当的营销语言现在可以充分发挥潜力。说真的,我喜欢javascript:它可以做很多很酷的事情,而且工作起来也不太困难。
- 而且
- XML格式
- 当然,这本身就是一个大肆宣传的空话。在发明这个术语的人的脑海中,这个缩写词的xml组件描述了xml在服务器和客户端上的数据承载能力。例如,Javascript可以访问DOM公司相同的xml美国石油学会至于html格式。
然而,在大多数人的心目中,Ajax与XMLHttp请求javascript中的对象,它实际上支持所有三个方面。它允许您通过以下方式向服务器发送请求http协议来自javascript。它的调用可以是同步的,也可以是异步的,它可以返回纯文本或预处理的xml。
这是一项激动人心的新技术吗?
不是。这很令人兴奋,因为最近有很多炒作Gmail(Gmail),Flickr,谷歌建议和我们自己的e2注释工具。但这并不是什么新鲜事。自1996年以来,浏览器就有可能与服务器进行静默通信,而XMLHttpRequest对象自2001年以来就存在于主要浏览器中。事实上,基于web的电子邮件客户端我在学校使用这个,是在2002年开发的。
我们这里主要有一个技术:通过各种方式,可以以静默方式与服务器通信。耶!这让我们看到解决方案:阿贾克斯。现在,所有人的态度都一样解决,许多人都在拼命寻找问题来解决。换句话说,它是新的,闪闪发光,只有开明的人才知道,我想成为在里面人群和创造Ajax这个词的人一样,杰西·詹姆斯·加勒特1希望我们相信,在这个术语存在的一个月里,Ajax只是变成了另一个(更短的)“使用XMLHttpRequest的解决方案”的单词。
它是如何工作的?
好吧,假设你知道javascript,工作很简单:你创建一个XMLHttpRequest对象;您可以设置urlhttp方法以及您是否希望调用是异步的;您定义了一个返回方法;并发送出去;瞧!。
//创建一个新请求--使用InternetExplorer不太简单xmlhttp=新的XMLHttpRequest();//向www.server.com打开一个非阻塞的GET请求xmlhttp.open(“GET”,“www.server.com”,true);//定义服务器发回数据时要调用的函数xmlhttp.onreadystatechange=函数(){if(xmlhttp.readyState==4){//请求已完成
//做点什么}}//将请求发送到服务器xmlhttp.send(空);
你用什么代替做点什么? 您可以获取xml树,或者大多数人的确,您将响应文本编写为一个javascript对象,并使用eval()方法将该对象分配给一个新的变量。类似于:
//将响应中编码的内容赋给myvareval(“var myvar=”+xmlhttp.responseText);
现在你知道了:实际使用XML部分没有什么意义,使用javascript以外的东西是愚蠢的,所以从所有这些A-J-A-X来看,我们只剩下A:异步部分。
这个Ajax东西有三个错误:
- 它实际上只是关于浏览器脚本的异步部分。名字不正确。
- 现在有数百人试图找到与此解决方案相关的问题。糟糕的炒作。
- 炒作围绕着一项技术,而不包括可用性这项技术可以改进。糟糕的哲学。
让我们考虑一下最后一点。直到最近基于web的应用程序这是他们的天性。永远必须提交表单并等待加载新页面。但这并不意味着这样做是不好的。事实上,有时这是最好的做事方式。特别是,只有小装置所有浏览器的共同点是后退按钮.以异步方式做事,它会被打破-我们失去了通常的纠正方式错误进一步的陷阱包括创建不寻常的小部件行为和可访问性问题。我预测在接下来的几个月里,令人困惑的网站会激增。因为他们修改了默认行为,并且希望使用新技术解决不存在的问题;因为这一切都是闪亮的和新的,我也想这样做!
为了写这篇文章和后代的利益,我创造了这个词CLIC公司:客户方面的聪明。这是我对我们应该去哪里的哲学。利用所有已经成熟的客户端基于web的技术,并在正确的时间使用正确的技术,创造尽可能好的结果用户体验:
- 在客户端做尽可能多的聪明的事情,比如表单验证等等。没有什么比等待页面重新加载一分钟后发现您没有填写必填字段更糟糕的了。
- 以静默方式从服务器获取数据,但仅当绝对地必要的。
- 保留航行尽可能使用网络的用户元素。
- 试着做任何创新集成到现有的小部件中,以免混淆用户。
- 合并其余部分可用性原则例如对web应用程序的反馈和效率。
你会注意到这一哲学的要点之一是不使用这个Ajax工具,或者只在它真正需要的时候使用改善用户体验。作为这些原则在实践中的一个例子,让我们看看如何信用卡站点的详细信息。它是一个文本框;有一半的时间,我们被告知输入错误。因为我们包括空格或不包括空格或破折号;或者没有。在Ajax发出噪音后,我相信有些人会通过网络默默发送信用卡号码,无担保的,由服务器验证。糟糕的举动!最好是用javascript检查表单,并立即告诉用户他的信用卡号是否在可接受的形式与否。更好的是,提供信息,不要让我们猜测我们应该如何输入信用卡详细信息。最棒的是:让我们随意输入数字,使用一些javascript来判断您是否能够理解它,以及只有如果确实需要,请让我们更正格式。
因此,如果您想加入Ajax赶时髦,想一想。它可能需要一些额外的编码,但总有CLIC公司做事的方式。
来源
- http://www.adaptivepath.com/publications/essays/archives/000385.php使用该术语的第一篇文章。
- http://www.quirksmode.org/blog/archives/2005/03/ajax_promise_or.html探索Ajax是有希望还是更夸张。
- http://jibbering.com/blog/index.php?p=161想知道为什么这项技术花了这么长时间才起步。