ajax的理解与工作流程

一、什么是ajax

ajax是一种异步通信技术。在ajax出现之前,客户端与服务端之间直接通信。引入ajax之后,客户端与服务端加了一个第三者--ajax。有了ajax之后,通过在后台与服务器进行少量数据交换,可以达到在不刷新整个页面的情况下实现局部刷新。其原理如图

二、XHR对象

ajax技术的核心是XMLHttpRequest对象(简称XHR)。IE7+、FireFox、Opera、Chrome和Safari都支持原生的XHR对象,创建XHR对象可以这样写

var xhr = new XMLHttpRequest();

那如果要兼容IE6、7又该怎么写

var xhr = new ActiveXObject("MSXML2,XMLHTTP");

因此兼容写法如下

1 if(window.ActiveXObject) {
2     var xhr = new ActiveXObject("MSXML2,XMLHTTP");
3 } else {
4     var xhr = new XMLHttpRequest();
5 }

三、XHR用法

创建完XHR对象后,要调用open()方法创建请求,open()方法接受三个参数:

1.要发送的请求的类型(如"get"、"post"等)

2.请求的URL

3.表示是否异步发送请求的布尔值(默认为true,表示异步)

xhr.open("get","index.php",true);

post()请求方法如下面代码

xhr.open("get","index.php",true);
//post()方法必须在send()方法之前加上下面这段代码
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");

说明一点:URL相对于执行代码的当前页面,也可以用绝对路径

准备工作做好后,调用send()方法发送请求,

xhr.send(null);

这里get方法传输的数据已经放到url中,可以将参数设置为null

在调用send()方法后,请求就会被分派到服务器,onreadychange捕获请求的状态码,并进行检测

onreadychange对象有个readyState属性,该属性的值表示当前的活动阶段,其值有如下几个:

0:未初始化。尚未调用open()方法

1:启动。已经调用open()方法,但尚未调用send()方法

2:发送。已经调用send()方法,但尚未接收到响应

3:接收。已经接受到部分响应数据

4:完成。已经接受到全部响应数据,并且可以在客户端使用

我们只需判断readyState的值是否为4就可以知道所有数据已经就绪。

复制代码
 1 xhr.onreadystatechange = function(){
 2     if (xhr.readyState==4) {
 3         //判断状态码是否成功
 4         if (xhr.status>=200&&xhr.status<=207||xhr.status==304) {
 5             //调用ajax的responseText属性返回数据
 6             alert(xhr.responseText);
 7         }else{
 8             alert(xhr.status);
 9     }  
10 }      
复制代码

四、总结

原生ajax的请求总结为一下六个步骤

1.创建XHR对象

2.调用open()方法创建请求

3.调用send()方法发送请求

4.onreadychange捕获请求的状态码

5.判断状态吗是否成功

6.调用ajax的responseText属性返回数据

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
AJAX(Asynchronous JavaScript and XML)是一种用于创建交互式网页应用程序的技术。它允许在不刷新整个页面的情况下,通过异步发送HTTP请求并接收服务器返回的数据。以下是AJAX从入门到精通的一些关键知识点: 1. 基本概念:AJAX核心概念是异步通信,它通过XMLHttpRequest对象向服务器发送请求,并处理服务器返回的数据。与传统的同步请求不同,AJAX请求能够在后台进行,不影响用户操作。 2. XMLHttpRequest对象:这是AJAX核心对象,用于发送和接收数据。你可以使用它的open()方法指定请求的类型(GET或POST)、URL和是否异步等参数,然后使用send()方法发送请求,并通过onreadystatechange事件处理服务器返回的数据。 3. 服务器端处理:服务器端需要接收AJAX请求,并根据请求的类型和参数进行相应的处理。常见的服务器端语言有PHP、Python、Java等,你可以根据自己的需求选择合适的语言来处理AJAX请求。 4. 数据交互格式:AJAX可以使用多种数据交互格式,常见的有XML、JSON和HTML。你可以根据项目需要选择合适的数据格式来传输和解析数据。 5. 错误处理和调试:在使用AJAX时,可能会遇到网络错误、服务器错误等问题。你需要学会处理这些错误,并进行调试以找到问题所在。 6. 安全性考虑:由于AJAX请求是异步的,因此需要考虑安全性问题,如防止跨站脚本攻击(XSS)和跨站请求伪造(CSRF)。你可以通过一些安全措施来增强AJAX请求的安全性。 7. AJAX框架和库:除了原生的AJAX技术,还有一些流行的AJAX框架和库,如jQuery、Vue.js、React等。它们可以简化AJAX开发过程,提供更便捷的API和功能。 以上是AJAX从入门到精通的一些关键知识点,希望能帮助你更好地理解和应用AJAX技术。如果你有具体的问题或需要更深入的学习资料,可以告诉我。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值