在 Web 开发里,异步数据获取是构建动态应用的核心。从早期的 AJAX 到现在的 Fetch API,选择多了,但也带来了困惑。这两种主流技术究竟有何不同?在实际项目中该如何选择?我们直接从解决问题的角度出发,看看它们的差异与适用场景。

AJAX:技术本质与核心原理
AJAX(Asynchronous JavaScript and XML)这个术语由 Jesse James Garrett 于 2005 年提出,它并非单一技术,而是一套技术集合的统称——包括 XMLHttpRequest 对象、DOM 操作、JavaScript 以及 XML 或 JSON 数据格式。这种组合拳使得网页能够在不刷新的情况下与服务器交换数据,从而带来了 Web 2.0 时代的革命。
// 传统 AJAX 请求示例
const xhr = new XMLHttpRequest();
xhr.open('GET', '/api/data', true);
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
const response = JSON.parse(xhr.responseText);
console.log(response);
}
};
xhr.send();
实际开发中的优势场景
尽管常被视为'传统'技术,AJAX 在某些场景下仍具有不可替代的优势:
浏览器兼容性是其最强大的武器。从 IE7 到现代浏览器,AJAX 几乎实现了全覆盖。如果你的项目需要支持老旧浏览器(如某些企业内网应用),AJAX 几乎是唯一的选择。
进度监控能力在文件上传等场景中尤为重要。通过监听 progress 事件,开发者可以轻松实现上传进度条:
xhr.upload.onprogress = function(event) {
if (event.lengthComputable) {
const percentComplete = (event.loaded / event.total) * ;
(percentComplete);
}
};


