我知道 AJAX 代表什么。我对 javascript 的了解还算过得去。但坦率地说,我只是不清楚 AJAX 是什么。
因为我所知道的只是 XMLHttpRequest(),但它肯定不止于此。有人可以更清楚地解释 AJAX 不仅仅是完美普通 JavaScript 的某个方面吗?我看不出有什么不同。
编辑:我也知道它允许您在不重新加载的情况下更新页面。这太棒了,我知道。但我仍然看不出这不仅仅是标准的 JavaScript。
我知道 AJAX 代表什么。我对 javascript 的了解还算过得去。但坦率地说,我只是不清楚 AJAX 是什么。
因为我所知道的只是 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 的确切定义现在很难确定。随着浏览器的发展,这些方法很容易自我更新,但这些是其概念的基本原则。
“异步 Javascript 和 XML”——你说得对,它实际上只是 Javascript 的一个组件。从服务器端看,它实际上什么都不是:服务器不知道也不关心它是在处理 AJAX 请求还是“正常”请求(尽管 Web 应用程序当然会知道和关心)。它恰好很有名并且有一个花哨的首字母缩略词,因为它在设计网站时非常有用。
编辑:来自 W3 规范http://www.w3.org/TR/XMLHttpRequest/的定义:
XMLHttpRequest 规范定义了一个 API,该 API 提供了用于在客户端和服务器之间传输数据的脚本客户端功能。
这是一种在不刷新页面的情况下异步地从服务器获取数据和向服务器发送数据的方式。交换的数据过去只是 XML(AJAX 中的“X”),现在可以是其他东西(例如 JSON 甚至 JSONP)。
JavaScript 发生在客户端。Ajax 使用 javascript 从服务器接收远程响应而不加载页面。