AJAX:Async JavaScript And XML(使用 XMLHttpRequest 对象与服务器通信),它可以使用JSON,XML,HTML,和 text文本等格式发送和接收数据
AJAX的异步特性
可以在不重新刷新页面的情况下与服务器通信,交换数据,或更新页面

背景

AJAX是浏览器上的功能
浏览器可以发请求,收响应
浏览器在window上加了一个XMLHttpRequest函数
用这个构造函数(类)可以构造出一个对象
JS通过它实现发请求,收响应

准备一个服务器

使用serve.js作为服务器
用 node serve.js 8888 启动(不会自动刷新)
安装node-dev(这样再启动就会自动重启服务器),用node-dev代替node
yarn global add node-dev
node-dev serve.js 8888
添加index.html和main.js两个路由

四个步骤

创建对象的HttpRequest对象(全称是XMLHttpRequest)
调用对象的open方法
监听对象的onreadystatechange事件
调用对象的send方法

  1. const requesr = new XMLHttpRequest();
  2. request.open("GET","./xxx");
  3. request.onreadystatechange = ()=>{
  4. if(request.readyState === 4 ){
  5. //下载成功
  6. if(request.status > 200 && request.status < 300){
  7. //请求成功
  8. }
  9. }
  10. }
  11. request.send();

解析方法

得到CSS之后生成style标签
得到JS之后生成script标签
得到HTML之后使用innerHTML和DOM API
得到XML之后使用responseXML和DOM API
不同类型的数据有不同类型的解析方法

加载JSON

JSON是一门语言,和HTML、CSS、XML、JS一样,是一门独立的语言
JSON不是编程语言,是标记语言,跟HTML、XML、Markdown一样,用来展示数据

支持的数据类型

string - 只支持双引号 number - 只支持科学计数法 bool - true和false null object array
官网http://json.org/json-zh.html

window.JSON

JSON.parse
将符合JSON语法的字符串转换成JS对应类型的数据
由于JSON只有六种数据结构,所以转换成的数据也只有六种
如果不符合JSON语法,则直接抛出一个Error对象
JSON.stringfy
JSON,parse的逆运算