解读Ajax原理、XMLHTTPRequest对象,及其Ajax使用步骤

目录

一、Ajax  

 Ajax的原理

 Ajax优缺点

 Ajax 的实现流程

 实现步骤    (只用Ajax发送请求,需要先引入jQuery库)

二、XMLHTTPRequest对象

 此对象所具有的方法、常用详细解析、常用属性

 实现步骤 (使用XMLHTTPRequest配合Ajax时)


一、Ajax  

        Ajax的全称是“Asynchronous JavaScript and XML”,是指一种创建交互式网页应用的网页开发技术。沟通浏览器与客户端,可以在不刷新整个浏览器的情况下与服务器进行异步通讯。

        Ajax的原理

        本质是通过XMLHTTPRequest对象向服务器发送异步请求后,从服务器获取到处理后的数据,再通过JavaScript来操作DOM从而更新页面。

        Ajax优点:

1、页面无需刷新,用户体验非常好

2、使用异步的请求方式与服务器通信,具有更加迅速的响应能力,且不阻塞用户

3、可以把以前一些服务器负担的工作转嫁到客户端,利用客户端闲置的能力来处理,减轻服务器和带宽的负担,节约空间和宽带租用成本。并且减轻服务器的负担,Ajax 的原则是“按需取数据”,可以最大程度的减少冗余请求,和响应对服务器造成的负担。

4、是基于标准化并被广泛支持的技术,不需要下载插件

        Ajax缺点:

1、Ajax不支持浏览的back回退按钮

2、安全问题Ajax暴露了与服务器交互的细节

3、对搜索引擎的支持比较弱

4、破环了程序的异常机制,不易调试

Ajax 适用场景

1、表单驱动的交互

2、深层次的树的导航

3、快速的用户与用户间的交流响应

4、类似投票、yes/no 等无关痛痒的场景

5、对数据进行过滤和操纵相关数据的场景

6、普通的文本输入提示和自动完成的场景

Ajax 不适用场景

1、部分简单的表单

2、搜索

3、基本的导航

4、替换大量的文本

5、对呈现的操纵

        Ajax 的实现流程是怎样的?

1、创建 XMLHTTPRequest 对象,也就是创建一个异步调用对象.

2、创建一个新的 HTTP 请求,并指定该 HTTP 请求的方法、URL 及验证信息.

3、设置响应 HTTP 请求状态变化的函数.

4、发送 HTTP 请求.

5、获取异步调用返回的数据.

6、使用 JavaScript 和 DOM 实现局部刷新.

     实现步骤 (只用Ajax发送请求,需要先引入jQuery库)

        1、get请求

$.ajax({
                type: 'get',
                url: 'url路径',
                data: { 字段: '值' },  //无参可省略
                success: function (res) {
                    //res即为返回的结果
                    console.log(res);
                }
            })

        2、post请求

$.ajax({
            type: 'post',//可大写可小写
            url: 'url路径',
            data: {
                字段: '值',
            }, //需要传输的数据
            success: function (res) {
                console.log(res);//res为返回的结果
            }
        })

二、XMLHTTPRequest对象

        Ajax的核心就是XMLHTTPRequest对象,此对象在IE5中首次引入,是一种支持异步请求的技术,可以使开发者使用JavaScript向服务器提出请求并处理响应,而不阻塞用户

        此对象所具有的方法、常用详细解析、常用属性

此对象所具有的方法:

open(String method,String url,boolean asynch,String username,String password)

send(content)

setRequestHeader(String header,String value)

getAllResponseHeaders()

getResponseHeader(String header)

abort()

常用详细解析:

open():该方法创建 HTTP 请求

        第一个参数是指定提交方式(post、get)

        第二个参数是指定要提交的地址是哪

        第三个参数是指定是异步还是同步(true 表示异步,false 表示同步)

        第四和第五参数在 HTTP 认证的时候会用到。是可选的

setRequestHeader(String header,String value):设置消息头

        (使用 post 方式才会使用 到,get 方法并不需要调用该方法)

xmlHTTP.setRequestHeader("Content-type","application/x-www-form-urlencoded"); send(content):发送请求给服务器

        如果是 get 方式,并不需要填写参数,或填写 null 如果是 post 方式,把要提交的参数写上去

常用属性:

onreadystatechange:请求状态改变的事件触发器

        (readyState 变化时会调用此方法),一 般 用于指定回调函数

readyState:请求状态 readyState 一改变,回调函数被调用,它有 5 个状态

        0:未初始化

        1:open 方法成功调用以后

        2:服务器已经应答客户端的请求

        3:交互中。HTTP 头信息已经接收,响应数据尚未接收。

        4:完成。数据接收完成

responseText:服务器返回的文本内容

responseXML:服务器返回的兼容 DOM 的 XML 内容

status:服务器返回的状态码

statusText:服务器返回状态码的文本信息

 实现步骤   (使用XMLHTTPRequest配合Ajax时,先引入jQuery库)

        1、get请求

//创建XMLHTTPRequest对象
const xhr = new XMLHttpRequest();
//创建HTTP请求
//1、不带参数的get请求
//xml.open("get","url路径");
//2、带参数的get请求
xml.open("get", "url路径?key1=value1&key2=value2");
xhr.send();
//监听事件
xhr.onreadystatechange = function () {
  //判断请求状态码readyState成功为4,状态码status成功为200
  if (xhr.readyState === 4 && xhr.status === 200)

    //得到服务端返回的文本数据
    //此处输出的是JSON字符串类型,转为普通类型,方便之后的DOM操作
    console.log(JsoN.parse(xhr.responseText));
};

2、post请求

//创建XMLHTTPRequest对象
const xhr = new XMLHttpRequest();
//创建HTTP请求
xml.open("POST", "url路径");
//使用post请求方式,需要设置消息头!!!
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded')
xhr.send(""); //必填,需要传输的数据如xhr.send("id=1&author=小范")
//监听事件
xhr.onreadystatechange= function () {
  if (xhr.readyState === 4 && xhr.status === 200)
    // //得到服务端返回的文本数据
    //此处输出的是JSON字符串类型,转为普通类型,方便之后进行DOM操作
    console.log(JsoN.parse(xhr.responseText));
};

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值