Ajax及其应用

AJAX的工作原理

简介

AJAX用于实现与服务器进行异步交互功能;异步(发送请求后,无需等待结果,由回调函数处理)。

核心在于:

1.XHR对象;

2.由浏览器提供;

3.无需刷新页面,AJAX通过异步请求加载后台数据,并在网页上呈现出来;

工作原理

核心依赖XHR对象,使得浏览器可以发出HTTP请求与接收HTTP响应,浏览器接着做其他的事情,等收到XHR返回来的数据再渲染页面。

XMLHttpRequest对象的属性、方法与事件

常用属性汇总

response

返回响应的正文,返回的类型取决于请求的responseType属性。

onreadystatechange

用法:XMLHttpRequest.onreadystatechange;

用于指定状态改变时所触发的事件处理器,当readyState属性发生变化时,调用的事件处理器。

readyState

用法同上;

用于获取请求状态的属性,返回一个数字,代表请求的状态码;

状态码:0-未初始化;1-正在加载;2-已加载;3-交互中;4-完成。

responseText

用法同上;

用于获取服务器相应的属性;

当readyState为0、1、2时,responseText是空字符串(表示请求未成功或尚未发送);当readyState为3时,responseText是还未完成的响应信息;当readyState为4时,responseText是响应信息。

responseXML

用法同上;

用于当接收到完整的HTTP响应时描述XML响应(readyState为4时),否则取值是null。

status

用法同上;

用于描述HTTP状态代码的属性,代表请求的响应状态,readyState为3、4时此属性才可以使用。

statusText

用法同上;

用于描述HTTP状态的代码文本,包含HTTP服务器返回的响应状态,但不用在于它包含完整的响应状态文本(如:“200 ok”),readyState为3、4时此属性才可以使用。

常用方法汇总

open()

用法:XMLHttpRequest.open();

初始化请求,用于设置异步请求的URL、请求方法及其他参数信息。

GET-获取;POST-创建、新增;PUT-修改;DELETE-删除。

send()

用法同上;

发送请求,若请求时异步的,则该方法将在请求发送后立即返回,否则要等到接收到响应为止。

setRequestHeader()

用法同上;

用于设置HTTP请求头的值,必须在open()方法调用之后、send()方法调用之前才可以使用

getRequestHeader()

用法同上;

返回指定的响应头,字符串形式,若未收到则返回null。

getAllRequestHeader()

用法同上;

返回所有用CRLF(回车符)分隔的响应头,字符串形式,若未收到则返回null。

事件汇总

abort

请求被中断的时候触发(onabort);

error

请求遭遇错误的时候触发(onerror);

load

XHR请求成功完成时触发(onload);

loadend

请求结束时触发,不管请求是成功(load)还是失败(abort、error)(onloadend);

loadstart

接收到响应数据时触发(onloadstart);

案例编写(以JSONPlaceHolder为数据服务)

使用AJAX获取JSONPlaceHolder的数据,具体步骤如下:(该部分参考了“掘金”)

  1. 创建AJAX核心对象XHR

let xhr=new XHMHttpRequest()
  1. 事件处理函数

xhr.onreadystatechange=function(){
    if(this.readyState==4&&this.status==200){//成功
        s(this.response);//响应成功函数
    }else{//失败
        f(new Error("error!"));//响应失败函数
    }
};
  1. 发送AJAX请求

xhr.open("GET","http://jsonplaceholder.typicode.com/posts");
xhr.responseType="json"//返回类型是JSON
xhr.send();

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值