目录
Ajax(Asynchronous Javascript And XML)的使用
Asynchronous Javascript And XML,是一种JavaScript给服务器发送HTTP请求的方式。
特点:可以不需要刷新页面或者跳转页面就可以进行数据传输。
Ajax(Asynchronous Javascript And XML)的使用
提供给JS可以发起HTTP请求的能力(同一个域名下才有权限):
XMLHttpRequest()对象的使用
open(method,url)方法的使用,send()方法 οnlοad=function(){...}
responseText:响应体
JS中如何解析JSON字符串
JSON.parse(jsonString)方法;
代码使用:
students.js:
// 利用这个对象发起 HTTP 请求
var xhr = new XMLHttpRequest();
xhr.open("get", "/data/students.json");
// 以时间驱动的方式,读取响应 —— 当 xhr 完成响应时,执行我们准备好的函数
xhr.onload = function () {
console.log(this); // this 就是 xhr 对象
console.log(this.responseText); // string 类型
console.log(xhr.responseText); // string 类型
// 我们希望把 json 字符串解析成 js 的具体数据类型
var sts = JSON.parse(this.responseText);
console.log(sts);
var body=document.querySelector('body');
for(var i in sts){
var st=sts[i];
body.innerHTML+=`<div>${st.name}</div>`;
}
}
xhr.send(); // 发送 HTTP 请求
index.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Ajax 请求</title>
</head>
<body>
<script src="js/script.js"></script>
</body>
</html>
执行过程
代码中,行为主体:用户,浏览器(进程),Tomcat(进程)
1、用户在浏览器中输入.../index.html
2、浏览器分析用户的输入,构建HTTP请求(GET请求),浏览器向服务器发送HTTP请求(index.html)
3、Tomcat收到请求,根据资源路径,找到对应的文件(webapp/index.html)读取内容,准备相应并发送
4、读取相应体,根据相应头content-type决定,按照HTML方式对待内容,解析HTML中标签
5、在解析过程中,看到<script src="js/script.js"></script>,构造一个新的HTTP请求(GET /js/script.js)
6、Tomcat根据资源路径,找到对应的文件,读取内容,准备HTTP响应( 200 aplication/javascript )
7、浏览器读取响应体,根据content-type,执行js代码(构建XMLHttpRequest()实例化对象xhr,send()),浏览器构建HTTP请求(GET /data/students.json)
8、Tomcat根据资源路径,找到对应的文件,读取内容students.json,读取内容,准备相应并发送
9、浏览器读取响应,执行JS代码中写的xhr.onland函数(XMLHttpRequest()实例化对象xhr):这个函数中,我们希望把 json 字符串解析成 js 的具体数据类型:var sts = JSON.parse(this.responseText);
10、浏览器得到最终的DOM结构,显示内容
11、用户看到网页的最终形式