ajax、axios、fetch的区别

ajax、axios、fetch 的区别

参考答案:

ajax 是指一种创建交互式网页应用的网页开发技术,并且可以做到无需重新加载整个网页的情况下,能够更新部分网页,也叫作局部更新。

使用 ajax 发送请求是依靠于一个对象,叫 XmlHttpRequest 对象,通过这个对象我们可以从服务器获取到数据,然后再渲染到我们的页面上。现在几乎所有的浏览器都有这个对象,只有 IE7 以下的没有,而是通过 ActiveXObject 这个对象来创建的。

Fetchajax 非常好的一个替代品,基于 Promise 设计,使用 Fetch 来获取数据时,会返回给我们一个 Pormise 对象,但是 Fetch 是一个低层次的 API ,想要很好的使用 Fetch,需要做一些封装处理。

下面是 Fetch 的一些缺点

  • Fetch 只对网络请求报错,对 400,500 都当做成功的请求,需要封装去处理
  • Fetch 默认不会带 cookie,需要添加配置项。
  • Fetch 不支持 abort ,不支持超时控制,使用 setTimeoutPromise.reject 的实现超时控制并不能阻止请求过程继续在后台运行,造成了流量的浪费。
  • Fetch 没有办法原生监测请求的进度,而 XHR 可以。

Vue2.0 之后,axios 开始受到更多的欢迎了。其实 axios 也是对原生 XHR 的一种封装,不过是 Promise 实现版本。它可以用于浏览器和 nodejsHTTP 客户端,符合最新的 ES 规范。

相关推荐
新诺韦尔API2 分钟前
车架号查询接口对接全流程详解
大数据·开发语言·python·api
梦6502 分钟前
Vue 中 v-for 与 v-if 优先级
前端·javascript·vue.js
移幻漂流3 分钟前
Kotlin 完全取代 Java:一场渐进式的技术革命(技术、成本与综合评估)
java·开发语言·kotlin
2501_930707783 分钟前
使用C#代码在 Word 文档页面中添加装订线
开发语言·c#·word
WF_YL5 分钟前
极光推送(JPush)快速上手教程(Java 后端 + 全平台适配)
java·开发语言
得贤招聘官7 分钟前
AI面试破局深水区:从工具迭代到价值重构
人工智能·面试·重构
一路往蓝-Anbo7 分钟前
【第48期】:嵌入式工程师的自我修养与进阶之路
开发语言·网络·stm32·单片机·嵌入式硬件
一只小bit8 分钟前
Qt 多媒体:快速解决音视频播放问题
前端·c++·qt·音视频·cpp·页面
梦6508 分钟前
React 高阶组件
前端·react.js·前端框架
郝学胜-神的一滴8 分钟前
深入理解网络分层模型:数据封包与解包全解析
linux·开发语言·网络·程序人生·算法