AJAX 概述

Ajax 即 Asynchronous Javascript And XML(异步 JavaScript 和 XML )在 2005年被 Jesse James Garrett 提出的新术语,用来描述一种使用现有技术集合的‘新’方法,包括: HTML 或 XHTML, CSS, JavaScript, DOM, XML, XSLT, 以及最重要的 XMLHttpRequest。 使用 Ajax 技术网页应用能够快速地将增量更新呈现在用户界面上,而不需要重载(刷新)整个页面,这使得程序能够更快地回应用户的操作。

与传统方式区别

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

同步和异步

  • 同步提交:当用户发送请求时,当前页面不可以使用,服务器响应页面到客户端,响应完成,用户才可以使用页面。
  • 异步提交:当用户发送请求时,当前页面还可以继续使用,当异步请求的数据响应给页面,页面把数据显示出来。

Ajax 的工作原理

浏览器发送请求,请求交给 ajax 对象,ajax 对象把请求提交给服务,服务器进行业务处理,服务器响应数据交给 ajax 对象,ajax 对象接收数据,由 javascript 把数据写到页面上,如下图所示:

实现方式

Ajax 的代码实现还是比较简单,不管是今天原生的 ajax 写法,还是以后的 Vue Axios 写法,步骤上来说,都是比较简单,我们更加应该关注的是如何通过 ajax 来完成前后端之间的交互。

产生 ajax 对象

// XMLHttpRequest 用于在后台与服务器交换数据。
let ajax = new XMLHttpRequest();

建立后端连接

ajax.open(method,url,true);
方法描述
open(method,url,async)

规定请求的类型、URL 以及是否异步处理请求。

  • method:请求的类型;GET 或 POST
  • url:文件在服务器上的位置
  • async:true(异步)或 false(同步)

发送请求

ajax.send();

回调处理

ajax.onreadystatechange=function(){
	if (ajax.readyState===4 && ajax.status===200){
		// 获取返回结果
	}
}

名词解释

readyState 属性

存有 XMLHttpRequest 的状态。从 0 到 4 发生变化。

  • 0: 请求未初始化。
  • 1: 服务器连接已建立。
  • 2: 请求已接收。
  • 3: 请求处理中。
  • 4: 请求已完成,且响应已就绪。

status 状态码

HTTP 状态码,就是每次 HTTP 请求返回的状态类型,具体的状态码信息可参考 Servlet 章节内容。

onreadystatechange 事件

当请求被发送到服务器时,我们需要执行一些基于响应的任务。每当 readyState 改变时,就会触发 onreadystatechange 事件。然后我们就会执行这个事件触发的函数。而只有当 readyState===4 并且 status===200时,表示响应已就绪。

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值