因为我只知道它涉及到XMLHttpRequest(),但它肯定不止于此。有人能否更清楚地解释一下AJAX不仅仅是普通JavaScript的某个方面?我看不出它有什么不同。
编辑:我也知道它允许您在不重新加载页面的情况下更新页面。那很棒,我知道。但我仍然看不出它有什么不同于标准JavaScript。
这并不像是什么 魔法,它实际上就是普通的Javascript,以及普通的XML(或JSON,或其他数据格式)。而且它在浏览器中运行。所有这些都并不是特别新颖或独特的。微软在1996年就开始谈论“DHTML”,并于1997年正式发布了它。
但是,将这些现有的东西结合起来,是一种足够常见和有用的方法,已经获得了一个特定的名字。AJAX指的是使用异步请求模式,在浏览器中运行的Javascript逻辑驱动下,检索XML格式或其他格式的数据。通常,检索到的数据会以某种方式用于更新HTML页面,而不会导致完整的页面刷新。
你说你不明白这与标准JavaScript有什么区别。使用浏览器中的Javascript,你可以做一些简单的事情,比如运行计时器,在到期后弹出提示框,或者对背景颜色执行淡出效果。或者像手风琴一样使用jQuery效果。或者根据不同列动态排序HTML表格。甚至可以使用Javascript实现文本框中的自动完成。这些都会导致UI被更新,但不一定会检索任何数据。(在某些情况下,自动完成会这样做,但通常不会)。
AJAX始终涉及通信和数据检索,因此它与“标准Javascript”有所区别。
我认为要理解XMLHttpRequest的来历,你需要研究一下它是从哪里来的。在当时,它不是JavaScript的标准组成部分。你不能使用纯JavaScript从浏览器发出异步HTTP请求。XMLHttpRequest对象最初是由Microsoft在IE5中作为ActiveX控件首次引入的。所以考虑到这一点,我们今天使用JavaScript的方式已经从一个更简单的情境演变而来。
我建议你阅读维基百科页面-特别是历史部分。Ajax没有什么显著的奇妙之处,它只是一个被杜撰出来的术语,用于描述当时的一种新方法,并且一直沿用至今。
http://en.wikipedia.org/wiki/AJAX
特别是阅读权威文章http://www.adaptivepath.com/ideas/ajax-new-approach-web-applications - 这可能是了解Ajax的最佳方式,以及它实际上意味着什么。 最重要的是:
定义Ajax
Ajax不是一种技术。它实际上是几种技术,每个技术都在其自己的领域中蓬勃发展,并以强大的新方式相互结合。 Ajax包括:
- 使用XHTML和CSS的基于标准的呈现;
- 使用文档对象模型进行动态显示和交互;
- 使用XML和XSLT进行数据交换和操作;
- 使用XMLHttpRequest进行异步数据检索;
- 以及JavaScript将所有内容绑定在一起。
如前所述,现在很难明确定义Ajax。随着浏览器的演变,这些方法很容易更新自己,但这些原则是其概念的基础。
xmlhttprequest
标头,服务器就知道它是一个 AJAX 请求。此外,有时服务器确实关心它是否是 AJAX 请求。 - FranciscAJAX是一种异步获取和发送数据到服务器的方式,而无需刷新页面。以前交换的数据只能是XML(AJAX中的“X”),现在可以是其他格式(例如JSON或甚至JSONP)。
JavaScript 发生在客户端。Ajax 使用 JavaScript 从服务器接收远程响应而无需加载页面。