原生ajax 同步异步
时间: 2024-06-20 18:01:39 浏览: 93
在JavaScript中,原生Ajax(Asynchronous JavaScript and XML)指的是使用XMLHttpRequest对象进行异步数据交换的技术,通常用于从服务器获取或发送数据,而无需刷新整个页面。
**同步请求(Syncronous Request, 非标准,已被弃用):**
早期的XMLHttpRequest是同步模式的,也就是在发送请求后,浏览器会等待服务器响应完成再执行后续代码。这种方式会导致页面在请求期间完全阻塞,用户体验较差。由于同步请求会阻塞浏览器,因此现代浏览器已经不支持同步的XMLHttpRequest。
**异步请求(Asynchronous Request, 标准):**
现代的XMLHttpRequest是异步的,它在发送请求后立即返回,然后浏览器继续执行其他代码。当服务器响应准备好时,浏览器会自动调用一个预先设置好的回调函数(通过`onreadystatechange`事件处理),将响应结果传递给这个函数。异步请求不会阻塞页面,使得前端操作更加流畅。
使用异步请求的主要方法是通过`open()`和`send()`方法,同时提供一个回调函数作为`onreadystatechange`的处理程序:
```javascript
var xhr = new XMLHttpRequest();
xhr.open('GET', 'your-url', true); // 第三个参数true表示异步
xhr.onreadystatechange = function() {
if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {
console.log(xhr.responseText);
}
};
xhr.send();
```
阅读全文