Ajax、XHR、Fetch、Axios 关键图解
关键图解
Ajax
全称(Asynchronous JavaScript And XML)
Ajax 是一个技术统称,是一个概念模型,它囊括了很多技术,并不特指某一技术,它很重要的特性之一就是让页面实现局部刷新。
他可以局部刷新页面,不用重载整个页面。
XHR
XHR(XmlHttpRequest)是一种用来实现Ajax的方法
示例:
1 | <body> |
注意:我们使用这种方式实现网络请求时,如果请求内部又包含请求,以此循环,就会出现回调地狱,这也是一个诟病,后来才催生了更加优雅的请求方式。
Fetch
Fetch 是一个 API,它是真实存在的,它是基于 promise 的。
- 使用 promise,不使用回调函数。
- 采用模块化设计,比如 rep、res 等对象分散开来,比较友好。
- 通过数据流对象处理数据,可以提高网站性能。
1
2
3
4
5
6
7
8
9
10<body>
<script>
function ajaxFetch(url) {
fetch(url).then(res => res.json()).then(data => {
console.info(data)
})
}
ajaxFetch('https://smallpig.site/api/category/getCategory')
</script>
</body>
Axois
- 他是一个封装库,是基于XHR来实现的。
- 从浏览器中创建 XMLHttpRequests
- 从 node.js 创建 http 请求
- 支持 Promise API(异步请求时会返回Promise)
- 拦截请求和响应
- 转换请求数据和响应数据
- 取消请求
- 自动转换 JSON 数据
- 客户端支持防御 XSRF
1
2
3
4
5
6
7
8
9// 发送 POST 请求
axios({
method: 'post',
url: '/user/12345',
data: {
firstName: 'Fred',
lastName: 'Flintstone'
}
})引用自知乎
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小贺同学的blog!
评论