Bendi新闻
>
从500ms到3ms,你还在用axios吗?

从500ms到3ms,你还在用axios吗?

2月前



今天在推上看到一位推友 @illyism 说:Axios 在发送特性 auth 请求头会造成请求发送缓慢,替换后耗时由 500ms 下降至 3ms

Fun fact: I removed axios and I got +200% better latency. They have some bug causing slowdowns when sending auth headers. Literally went from 500ms to 3ms 🤯

看到此消息,表示很震惊!😱

对于前端开发者来说,80% 以上的项目都在使用 axios 模块。axios 真有此 Bug 吗?如果不用 axios,有哪些完美平替方案?

Axios 为何如此优秀?

Axios 是一个基于 Promise 的 HTTP 库,它的使用方法和API与 jQuery 的 Ajax 有很多相似之处。它既可以使用在浏览器端(XMLHttpRequest),也可以使用于服务器端(http模块)。对于前后端同构、SSR类型项目尤其有用,一份代码可以在前、后端运行。

Axios 的主要特性有:

  1. 支持 Promise API
  2. 拦截请求和响应,在请求前添加授权和响应前做一些特性处理。
  3. 转换请求和响应数据,对请求进行加密或者响应数据加密。
  4. 支持取消请求
  5. 自动转换 JSON 数据
  6. 自动将数据对象序列化为 multipart/form-datax-www-form-urlencoded 主体编码
  7. 客户端支持防御XSRF

Axios 的平替方案

如果我们不使用 axios,可平替的方案有 got、node-fetch、ky、superagent,这些模块都比较常见,从下面的 NPM Trends 图可以出来也都比较受欢迎。

从上图可以看出,axios 和 node-fetch 下载量最多,也最受欢迎。

下面再来看看不同库之间的对比:


从上图可以看出,相比 axios,got 支持的功能更为健全。它几乎与浏览器的 fetch API 兼容,使用时需要手动切换协议,不接受 PUSH 流,也不重复使用 HTTP/2 会话。比较遗憾的是 got 不支持在浏览器上使用。

关于 Fetch API

近些年,随着浏览器的发展,Fetch API 已经被所有现代浏览器所支持。在 Node.js 21 中 Fetch API 已经提升至稳定版本,这将对实现前后同构的项目带来更多方便。

最后推荐一个更好的 Fetch API,ofetch可以在 Node.js、浏览器端以及Worker上运行是,可以用来完美平替 axios。

https://github.com/unjs/ofetch

快速安装:

# npm
npm i ofetch

# yarn
yarn add ofetch

导入:

// ESM / Typescript
import { ofetch } from "ofetch";

// CommonJS
const { ofetch } = require("ofetch");

如果还有其他更好的 HTTP 库,可以在文末留言讨论。

微信扫码关注该文公众号作者

来源:OSC开源社区

相关新闻

还在用 Xshell ?你 out 了!!还在用Xshell?你out了!!AI时代红利:智能体成香饽饽,67.5万人都在用,你还在等什么?这24款App被通报!有你家孩子在用的吗?新老移民都懵了!在加拿大 你真的真的会用信用卡吗?威廉开口透露凯特最新情况!中国电商巨头将在伦敦上市,来看看你用过吗?还记得你生孩子用了多久吗?辛酸都在身体被掏空的时间里!“小而美”Tauri已支持iOS和Android,你还在用“技术毒瘤”Electron?加拿大移民部长表示:限量!还在观望的你汗流浃背了吗?还是来了!加拿大移民局对临时居民“限量”!还在观望的你汗流浃背了吗?写作万年5.5!你还在用这些被考官拉黑的“万能句型”?截止到2月,英国平均租金涨幅再创新高达到9%,学费、交通、能源都在涨,你还会来英国吗?从北京到成都只用一小时?用这种方法,我们让列车在地面起飞疯狂!中国留学生还敢去吗?大温政府竟然批准在UBC学校内开一家大麻店!学生会还大力支持?!附近居民反对了三年都没用...还在为基金/课题选题发愁吗?美国资助的基金和课题大数据分析可能会给你启发!还在用原生家庭叙事来解释自己的人生吗?被“尔滨”从深山里“请”到中央大街的鄂伦春族,你真的了解吗?都2024年了,还有人在用充电又慢、块头又大还重的充电宝吗?!科学家首次记录到猩猩用药草疗伤,还发了SCI论文;Nature:能给我安排一位猩猩医生吗?加州保险市场再遭打击!State Farm终止72000份家庭保险,你的保单还在吗?如果留学的尽头是回国,那你还出国吗?iptables 怎么用?你不会还不知道吧?毛豆还在读书吗?是的,而且越读越多了不懂就问:去年没用完的防晒,今年还能用吗?
logo
联系我们隐私协议©2024 bendi.news
Bendi新闻
Bendi.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Bendi.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。