一些话
刚开始学习Ajax的时候,感觉很模糊,但是好像学什么都是这样的,很正常,但是当你学习的时候要持续性敲代码,边敲代码其实就可以理解很多了。然后在最后的总结,其实做二维表之后,就可以区分好多相似的东西,做了思维导图之后就很容易把脑子里的东西串成一条线。
所以说,建议大家总结啦
思维导图
这些是总的导图
这是抽取之后的
二维表
使用axios和promise对象实现Ajax有什么区别
axios 是由 promise 封装的一个 http 的库。
回调函数地狱的情况,可以使用Promise解决
比较项目 |
Axios 实现 Ajax |
Promise 对象实现 Ajax(原生方式) |
代码复杂度 |
较低,因为 Axios 已经封装了很多功能,代码简洁明了 |
较高,需要自己处理 XMLHttpRequest 的多个细节 |
功能丰富度 |
提供自动转换数据、拦截请求 / 响应、跨域支持等高级功能 |
主要实现基本的请求 - 响应功能,高级功能需自己实现 |
跨平台性 |
支持浏览器和 Node.js 环境 |
主要用于浏览器环境,在 Node.js 中需要做一些调整 |
对请求细节控制 |
相对较少,Axios 已经处理了很多底层细节 |
更多,可以深入定制请求的各个环节 |
await,async和Promise
下面一些图片我忘了从哪找到的了,如果有知道的欢迎在评论区说明
我的二维表
比较项目 |
async和await |
Promise |
定义 |
async用于声明异步函数,返回Promise对象;await只能async函数内使用,暂停函数执行直到Promise状态改变 |
表示尚未完成(或可能已完成)的异步操作的对象,有三种状态,表示异步操作最终的完成(或失败)以及其结果值。 |
错误处理 |
在async函数中用try/catch块捕获await表达式中的错误 |
通过catch方法捕获Promise被reject后的错误 |
代码风格 |
让异步代码看起来更像同步代码,对于复杂异步流程(如多个异步操作顺序执行和错误处理)结构更清晰,减少嵌套 |
链式调用(then、catch等)可处理多个异步操作顺序和结果,但过多链式调用可能导致代码嵌套深、可读性差 |
相互关系 |
async函数返回Promise,await用于暂停async函数内部执行等待Promise状态改变,是基于Promise的语法糖 |
async和await基于Promise构建,用于更方便地处理Promise |
get和post的区别
get |
post |
|
请求的目的 |
通常用于从服务器检索(获取)数据。它不会修改服务器上的数据。 |
通常用于向服务器发送数据(如提交表单)。它可能会导致服务器上的数据被修改。 |
安全性 |
GET 方法的参数会暴露在 URL 中 |
而 POST 方法的参数则放在请求体中,相对安全一些。 |
参数长度限制 |
GET 方法的参数长度有限制,对于只传输少量数据的请求比较适用 |
POST 方法没有参数长度限制,适合传输大量数据。 |
请求的数据 |
请求的数据(如果有的话)会附加到URL的查询字符串中,并以键值对的形式出现(例如,?key1=value1&key2=value2)。这意味着GET请求的数据长度是有限制的(由浏览器和服务器共同决定,但通常较短),且不适合传输敏感信息(因为URL可能会记录在浏览器历史、服务器日志等地方)。 |
请求的数据会放在请求体中发送,这意味着它可以传输大量数据,且不会受到URL长度的限制。POST请求更适合传输敏感信息,因为请求体通常不会在浏览器历史或服务器日志中记录。 |
缓存 |
GET 方法的请求会被浏览器缓存,多次请求相同的 URL 时,有可能直接读取缓存中的结果 |
请求通常不会被缓存,因为每次POST请求都可能导致服务器上的数据被修改。 |
使用场景 |
通常用于检索数据、查询数据库等不需要修改服务器数据的场景。 |
通常用于提交表单、上传文件、创建新资源等需要修改服务器数据的场景。 |
传参方式data 与 params 的区别
比较项目 |
data 参数 |
params 参数 |
传输方式 |
放在请求体中传输 |
通过 URL 进行传输,拼接在 URL 末尾 |
使用场景 |
适用于 POST、PUT、PATCH 等非 GET 请求,用于向服务器提交数据以创建、更新或修改资源 |
主要用于 GET 请求,让服务器根据参数筛选、排序或返回特定资源 |
数据大小限制 |
相对没有严格的类似 URL 长度那样的限制(实际受服务器配置等因素影响),更适合大量数据传输 |
受 URL 长度限制,过长 URL 可能导致请求失败 |
安全性 |
不在 URL 中显示数据,一定程度上保护隐私和安全性,适合传递敏感信息 |
数据在 URL 上可见,不适合传递敏感信息如密码等 |
同步和异步
比较项 |
同步 |
异步 |
是什么 |
按顺序依次执行任务,后一个任务等待前一个完成。(不等于阻塞) |
不等待任务完成就执行其他任务。 |
为什么要用 |
逻辑简单,保证数据一致性。 |
提高性能和效率,提升用户体验。 |
在哪用 |
简单计算、顺序依赖强的业务逻辑。 |
网络请求、文件操作、定时器和事件处理。 |
怎么用 |
按正常函数调用顺序执行。 |
用回调函数或 Promise(JS)、async/await(其他语言)。 |