你还不在将Ajax、Fetch和Axios三者进行比较吗?

164 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第17天,点击查看活动详情

生活处处是惊喜,Ajax、Fetch和Axios不是同一个维度的概念,可以比较吗?

前端发展多年,我们都很熟悉Ajax,我们都知道因为Ajax的出现,前端有了跨时代的发展,我们才能够让页面可以无刷新的请求数据,大大提高我们的开发效率。当然,页面可以无刷新的请求数据只是ajax出现给我们前端技术发展带来了好处之一。随着技术的发展更新,又出现了Fetch和Axios。

这时候就会有人问Ajax、Fetch和Axios有什么区别呢?那么我反问一句它们有直接的可比性吗? 先别说我冒昧无知,容我先问一句:人类、汉族人、中国人有区别吗?

当看到这个问题,我相信很多人可能会有点懵。人类是一个大的概念,汉族人是特定的一种民族的人,中国人是由很多种族的人组成的。将人类、汉族人、中国人这三个概念进行对比,严格意义上来说是不太合适的,因为这三个概念不是在一个维度上的,可能这个例子不是很合适,但是它和Ajax、Fetch和Axios一样,都不是同一个维度的概念。

Ajax、Fetch和Axios的区别是什么呢?它们三个就没在一个维度上,严格意义上无法进行比较,如果一定要比较,只能从他们所属的不同维度来进行说明。

Ajax

Ajax是 Asynchronous Javascript And XML的缩写,即异步 JavaScript 和 XML,它是一种技术统称

Fetch

Fetch被称为下一代Ajax技术,但其实它就是一种具体的浏览器原生的api,语法更简洁(相对于XMLHTTPRequest,也是一种具体的浏览器原生的api)

截屏2022-04-17 22.33.52.png

截屏2022-04-17 22.34.11.png 我们在浏览器中直接输入fetch,浏览器就能直接识别,我们输入XMLHTTPRequest,浏览器也能直接识别

  • 请实现一个ajax请求
    我们既可以使用XMLHTTPRequest来实现,也可以用Fetch来实现。 相对而言,XMLHTTPRequest和Fetch是同等级别的

Axios

Axios是一个基于promise网络请求库,它是一个第三方库。其利用了XMLHTTPRequest这个api实现了某些功能。

延展

  1. lib(库)和api的区别是什么? 库是利用api在实现或者完善某一个功能,api是库实现的基石;api在一定的时期内数量是固定的,但库不一定。
  2. 用库还是自己造轮子? 在实际生产中,尽量使用经过大量用户验证的库,在学习的时候造轮子是一个很好的途径