手写Ajax

95 阅读2分钟

Ajax是什么

Ajax(Asynchronous JavaScript and XML)是一种用于创建快速、动态网页的前端技术。它通过在后台与服务器进行异步数据交换,实现无需刷新整个页面的局部更新。Ajax 使用 JavaScript 与服务器进行通信,通过发送 HTTP 请求获取数据,并在不刷新整个页面的情况下将返回的数据动态更新到页面上。

有什么优点

  1. 异步通信:Ajax 使用异步方式发送请求和接收响应,不会阻塞页面的其他操作。这意味着用户可以继续与页面进行交互,而不必等待请求的完成。
  2. 无需页面刷新:通过局部更新技术,Ajax 可以在不刷新整个页面的情况下,更新页面的一部分内容。这提供了更流畅、响应更快的用户体验。
  3. 数据交换格式:尽管名字中带有 XML(eXtensible Markup Language),但实际上 Ajax 并不限于使用 XML。它可以使用各种数据交换格式,如 JSON(JavaScript Object Notation),HTML,纯文本等。
  4. 动态网页:Ajax 可以使网页更加动态和交互性。通过与服务器进行数据交换,可以根据用户的操作实时更新网页内容,如动态加载数据、表单验证、自动完成等。
  5. 减少带宽和服务器负载:由于 Ajax 可以在不刷新整个页面的情况下获取和更新数据,可以减少对服务器的请求次数和数据传输量,从而减少带宽和服务器负载。
  6. 平台无关性:Ajax 基于标准的 Web 技术,如 JavaScript 和 XML(或其他数据格式),可以在多个平台和设备上使用,包括桌面浏览器和移动设备。

代码

// 创建 XMLHttpRequest 对象
var request = new XMLHttpRequest();
// 使用 GET 方法打开一个 URL('/xxx')
request.open('GET', '/xxx');
// 监听请求状态的变化
request.onreadystatechange = function () {
  // 当请求状态为 4(请求已完成)时执行以下代码
  if (request.readyState === 4) {
    // 检查请求的状态码是否满足成功的条件(200-299 范围内或者等于 304)
    if ((request.status >= 200 && request.status < 300) || request.status === 304) {
      // 请求成功,调用 success 函数并传递请求对象作为参数
      success(request);
    } else {
      // 请求失败,调用 fail 函数并传递请求对象作为参数
      fail(request);
    }
  }
};
// 发送请求,并在请求的数据部分发送 JSON 字符串(修正后的 JSON 语法)
request.send('{"name":"colin"}');