Ajax - Web 开发者指南 编辑
Asynchronous JavaScript + XML(异步JavaScript和XML), 其本身不是一种新技术,而是一个在 2005年被Jesse James Garrett提出的新术语,用来描述一种使用现有技术集合的‘新’方法,包括: HTML 或 XHTML, CSS, JavaScript, DOM, XML, XSLT, 以及最重要的 XMLHttpRequest
。当使用结合了这些技术的AJAX模型以后, 网页应用能够快速地将增量更新呈现在用户界面上,而不需要重载(刷新)整个页面。这使得程序能够更快地回应用户的操作。
尽管X在Ajax中代表XML, 但由于JSON的许多优势,比如更加轻量以及作为Javascript的一部分,目前JSON的使用比XML更加普遍。JSON和XML都被用于在Ajax模型中打包信息。
文档
- 新手入门
- 本文将为您引导完成ajax基础知识,并为您提供两个简单的实际操作示例。
- 使用XMLHttpRequest API
XMLHttpRequest
API是Ajax的核心。本文将解释如何使用一些Ajax技术,比如:- 分析和操纵服务器响应
- 监控请求过程
- 提交表单或者上传二进制文件– 使用纯Ajax或者
FormData
对象 - 创建异步或同步请求
- 在Web workers中使用Ajax
- Fetch API
- Fetch API 提供一个获取资源的接口。对于用过
XMLHTTPRequest
的人来说会觉得很熟悉,但这个API提供了更加强大且灵活的特性。 - Server-sent 事件
- 在过去,一个网页必须发送请求到服务器来获取新的数据,也就是说,网页必须主动向服务器请求数据。有了server-sent events之后,服务器可以向网页推送消息,使得服务器可以随时向网页传送数据。这些发送过来的消息可以看作是带有数据的事件。参见: Using server-sent events.
- 纯 Ajax 导航示例
- 本文提供了一个仅由三个页面组成的纯Ajax网站的(简易)工作示例。
- 发送和接收二进制数据
- 可以设置
XMLHttpRequest
对象的responseType
属性以改变从服务器端获取数据的类型。可接受的值为空字符串(默认)、arraybuffer
、blob
、document
、json
以 及text
。response
属性性根据responseType
的值成为对应的数据对象,如ArrayBuffer,
Blob
、Document
、JSON
或者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应用程序异步读取存储在用户计算机上的文件(或原始数据缓存)的内容,使用File
或Blob
对象指定要读取的文件或数据。文件对象可以从用户选择文件后的<input>
元素的FileList
对象中获取,也可以从拖放操作的DataTransfer
对象获取,或者从HTMLCanvasElement
的mozGetAsFile()
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 现行标准
工具
- 工具包和框架
- Firebug - Ajax / Web开发工具
- AJAX调试工具
- Flash / AJAX集成套件
- 一个简单的XMLHTTP接口库
- axios 基于
Promise
的 HTTP 客户端,使用XMLHttpRequest
实现。
例子
相关主题
HTML, XHTML, CSS, DOM, JavaScript, XML, XMLHttpRequest, XSLT, DHTML, Same Origin Policy
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论