Ajax

新手入门 Ajax 简介

Asynchronous JavaScript + XML(异步 JavaScript 和 XML), 其本身不是一种新技术,而是一个在 2005 年被 Jesse James Garrett 提出的新术语,用来描述一种使用现有技术集合的‘新’方法,包括:HTMLXHTML, CSS, JavaScript, DOM, XML (en-US), XSLT, 以及最重要的 XMLHttpRequest。当使用结合了这些技术的 AJAX 模型以后,网页应用能够快速地将增量更新呈现在用户界面上,而不需要重载(刷新)整个页面。这使得程序能够更快地回应用户的操作。

尽管 X 在 Ajax 中代表 XML,但由于JSON的许多优势,比如更加轻量以及作为 Javascript 的一部分,目前 JSON 的使用比 XML 更加普遍。JSON 和 XML 都被用于在 Ajax 模型中打包信息。

文档

新手入门

本文将为您引导完成 ajax 基础知识,并为您提供两个简单的实际操作示例。

使用 XMLHttpRequest API

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

Fetch API

Fetch API 提供一个获取资源的接口。对于用过 XMLHTTPRequest 的人来说会觉得很熟悉,但这个 API 提供了更加强大且灵活的特性。

Server-sent 事件

在过去,一个网页必须发送请求到服务器来获取新的数据,也就是说,网页必须主动向服务器请求数据。有了 server-sent events 之后,服务器可以向网页推送消息,使得服务器可以随时向网页传送数据。这些发送过来的消息可以看作是带有数据的事件。参见:Using server-sent events.

纯 Ajax 导航示例

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

发送和接收二进制数据

可以设置 XMLHttpRequest 对象的 responseType 属性以改变从服务器端获取数据的类型。可接受的值为空字符串(默认)、arraybufferblobdocumentjson 以 及 textresponse 属性性根据 responseType 的值成为对应的数据对象,如 ArrayBufferBlobDocumentJSON 或者 string 。本文会展示一些 Ajax I/O 技术。

XML

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

解析和序列化 XML

如何从字符串,文件或者 Javascript 中解析 XML 文档,以及如何将 XML 文档序列转化为字符串,Javascript 对象树 (JSON) 或者文件。

XPath

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

FileReader API

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

XMLHttpRequest 对 HTML 的支持

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

参见

Ajax: A New Approach to Web Applications

Jesse James Garrett 在 2005 年 2 月写了这篇文章 adaptive path,介绍了 Ajax 及其相关概念。

XMLHttpRequest Specification

WHATWG 现行标准

工具

例子

参见