URL查询参数
定义:浏览器提供给服务器的额外信息,让服务器返回浏览器想要的数据
axios-查询参数
语法:使用axios提供的params选项
注意:axios在运行时把参数名和值,会拼接到url?参数名=值
常用请求方法
请求方法:对服务器资源,要执行的操作
请求方法 | 操作 |
---|---|
GET | 获取数据 |
POST | 提交数据 |
PUT | 修改数据(全部) |
DELETE | 删除数据 |
PATCH | 修改数据(部分) |
axios请求配置
url:请求的URL网址
method:请求的方法,GET可以省略(不区分大小写)
data:提交数据
HTTP协议-请求报文
HTTP协议:规定了浏览器发送及服务器返回内容的格式
请求报文:浏览器按照HTTP协议要求的格式,发送给服务器的内容
响应报文:服务器按照HTTP协议要求的格式,返回给浏览器的内容
-
响应行:协议、HTTP响应状态码、状态信息
-
响应头:以键值对的格式携带的附加信息,比如:Content-Type
-
空行:分隔响应头,空行之后的是服务器返回的资源
-
响应体:返回的资源
请求报文的格式
请求报文的组成部分有:
-
请求行:请求方法,URL,协议
-
请求头:以键值对的格式携带的附加信息,比如Content-Type
-
空行:分隔请求头,空行之后的是发送给服务器的资源
-
请求体:发送的资源
HTTP响应状态码
HTTP响应状态码:用来表明请求是否成功完成
接口文档
接口文档:描述接口的文章
接口:使用AJAX和服务器通讯时,使用的URL,请求方法,以及参数
AJAX原理-XMLHttpRequest
定义:(XHR)对象用于与服务器交互。通过XMLHttpRequest可以在不刷新页面的情况下请求特定URL,获取数据。这允许网页在不影响用户操作的情况下,更新页面的局部内容。XMLHttpRequest在AJAX编程中被大量使用。
关系:axios内部采用XMLHttpRequest与服务器交互
好处:掌握使用XHR与服务器进行数据交互,了解axios内部原理
XMLHttpRequest-查询参数
定义:浏览器提供给服务器的额外信息,让服务器返回浏览器想要的数据
Promise
定义:Promise对象用于表示一个异步操作的最终完成(或失败)及其结果值。
好处:1.逻辑更清晰 2.了解axios函数内部运作机制 3.能解决回调函数地狱问题
Promise-三种状态
作用:了解Promise对象如何关联的处理函数,以及代码执行顺序
概念:一个Promise对象,必然处于以下几种状态之一
-
待定(pending):初始状态,既没有被兑现,也没有被拒绝
-
已兑现(fulfilled):意味着,操作成功完成
-
已拒绝(rejected):意味着,操作失败
注意:Promise对象一旦被兑现/拒绝就是已敲定了,状态无法再被改变
同步代码和异步代码
同步代码:逐步执行,需原地等待结果后,才继续向下执行
异步代码:调用后耗时,不阻塞代码继续执行,在将来完成后触发一个回调函数
Promise-链式调用
概念:依靠then()方法会返回一个新生成的Promise对象特性,继续串联下一环任务,直到结束
细节:then()回调函数中的返回值,会影响新生成的Promise对象最终状态和结果
好处:通过链式调用,解决回调函数嵌套问题
async函数和await
概念:在async函数内,使用await关键字取代then函数,等待获取Promise对象成功状态的结果值
事件循环(EventLoop)
概念:JavaScript有一个基于事件循环的并发模型,事件循环负责执行代码、收集和处理事件以及执行队列中的子任务。这个模型与其它语言中的模型截然不同,比如C和Java
原因:JavaScript单线程(某一刻只能执行一行代码),为了让耗时代码不阻塞其它代码运行,设计了事件循环模型
事件循环-执行过程
定义:执行代码和收集异步任务的模型,在调用栈空闲,反复调用任务队列里回调函数的执行机制,就叫事件循环
宏任务与微任务
异步任务分为:
-
宏任务:由浏览器环境执行的异步代码
-
微任务:由JS引擎环境执行的异步代码
任务(代码) | 执行所在环境 |
---|---|
JS脚本执行事件(script) | 浏览器 |
setTimeout/setInterval | 浏览器 |
AJAX请求完成事件 | 浏览器 |
用户交互事件等 | 浏览器 |
Promise对象.then() | JS引擎 |
promise本身是同步的。而then和catch回调函数是异步的
Promise.all静态方法
概念:合并多个Promise对象,等待所有同时成功完成(或某一个失败),做后续