首页 > 技术文章 > AJAX学习

njuclc 2020-07-31 23:15 原文

AJAX学习

1.简介

AJAX 即 “Asynchronous Javascript And XML”,即异步JavaScript和XML,是指一种创建交互式网页应用的网页开发技术。虽然AJAX名字中含有XML,但是现在基本上已经被更加灵活通用的JSON取代了。

通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个网页页面。

AJAX不是新的编程语言,而是将现有的标准组合在一起使用的新方式。

  • 优点:
    • 无需刷新页面与服务器端进行通信
    • 可以根据用户事件更新页面内容
  • 缺点:
    • 没有浏览历史,无法回退
    • 存在跨域问题
    • SEO不友好

2.AJAX

这里仅列举几个常用的属性和方法,文档见 MDN web doc

  • 创建对象
const xhr = new XMLHttpRequest();
  • 初始化,设置请求方法和URL,以及是否为异步请求(可选,默认为true)
xhr.open('GET', 'http://127.0.0.1:8081/');
  • 发送(如果为POST请求,可添加参数)
xhr.send();
  • 事件绑定,事件处理

readystate共有5种可能的值,onreadystatechange表示readystate变化后的回调函数

  • 0-未初始化,尚未调用open()方法;
  • 1-启动,调用了open()方法,未调用send()方法;
  • 2-发送,已经调用了send()方法,未接收到响应;
  • 3-接收,已经接收到部分响应数据;
  • 4-完成,已经接收到全部响应数据;
xhr.onreadystatechange = function(){
  if(xhr.readyState == 4){
    // 已经接收到全部响应数据,执行以下操作
    var data = xhr.responseText;
    console.log(data);
  }
};
  • 设置响应数据类型
xhr.responseType = 'json';
  • 超时设置
// 超时设置
xhr.timeout = 1000;
// 超时回调
xhr.ontimeout = function() {
  console.log('time out')
}
// 断网回调
xhr.onerror = function () {
  conosle.log('offline')
}
  • 取消请求
xhr.abort();
  • 重复请求

举个

推荐阅读