Ajax

异步 JavaScript 和 XML,或 Ajax 本身不是一种技术,而是一种将一些现有技术结合起来使用的方法,包括:HTMLXHTMLCSSJavaScriptDOMXMLXSLT、以及最重要的 XMLHttpRequest 对象。当使用结合了这些技术的 Ajax 模型以后,网页应用能够快速地将增量更新呈现在用户界面上,而不需要重载(刷新)整个页面。这使得程序能够更快地回应用户的操作。

尽管 Ajax 中的 X 代表 XML,但是 JSON 才是首选,因为它更加轻量,而且是用 JavaScript 编写的。在 Ajax 模型中,JSON 和 XML 都被用来包装信息。

文档

新手入门

这篇文章引导你了解 Ajax 的基础知识,并给你两个简单的实践例子来让你开始上手。

使用 XMLHttpRequest API

XMLHttpRequest API 是 Ajax 的核心。本文将解释如何使用一些 Ajax 技术,比如:

纯 Ajax 导航示例

本文提供了一个仅由三个页面组成的纯 Ajax 网站的(最小)工作示例。

发送和接收二进制数据

XMLHttpRequest 对象的 responseType 属性可以被设置来改变服务器的预期响应类型。可能的值是空字符串(默认)、arraybufferblobdocumentjsontextresponse 属性将根据 responseType 包含,作为一个 ArrayBufferBlobDocumentJSON 或字符串的实体主体。这篇文章将展示一些 Ajax I/O 技术。

XML

Extensible Markup Language (XML) 可扩展标记语言是 W3C 推荐的一种专用于创建专用标记语言的通用标记语言。它是 SGML 的简化子集,能够描述许多不同类型的数据。其主要目的是促进在不同的系统,尤其是通过互联网连接的系统间的数据共享。

解析和序列化 XML

如何从字符串、文件或通过 JavaScript 解析 XML 文档,以及如何将 XML 文档序列化为字符串或文件。

XPath

XPath 代表 XML Path Language,它使用非 XML 语法,提供了一种灵活的方式来寻址(指向)XML 文档的不同部分。除此之外,它还可以用于测试文档中的寻址节点,以确定它们是否匹配模式。

FileReader API

FileReader API 允许 Web 应用程序异步读取存储在用户计算机上的文件(或原始数据缓存)的内容,使用 FileBlob 对象指定要读取的文件或数据。文件对象可以从用户选择文件后的 <input> 元素的 FileList 对象中获取,也可以从拖放操作的 DataTransfer 对象获取。

XMLHttpRequest 对 HTML 的支持

W3C XMLHttpRequest规范向 XMLHttpRequest 添加了 HTML 解析支持,XMLHttpRequest 原本只支持 XML 解析。此功能允许 Web 应用程序使用 XMLHttpRequest 获取 HTML 资源作为解析的 DOM。

相关技术

虽然 Ajax 仍然有用,但自 2005 年以来,已经开发了可以实现类似功能的其他 API,包括Fetch API服务端发送事件

Fetch API

Fetch API 提供了一个获取资源的接口。对于使用过 XMLHTTPRequest 的人来说非常熟悉,但这个 API 提供了一个更强大和灵活的功能集。

服务端发送事件

传统上,一个网页必须向服务器发送请求以接收新数据;也就是说,网页向服务器请求数据。有了服务器发送的事件,服务器就有可能在任何时候向网页发送新的数据,通过推送消息给网页。这些传入的消息可以被视为网页内部的事件 + 数据。也请参见使用服务器发送的事件

参见

XMLHttpRequest 规范

WHATWG 现行标准