[异步请求]ajax、axios、fetch之间的详细区别以及优缺点
1.jQuery ajax
$.ajax({
   type: 'POST',
   url: url,
   data: data,
   dataType: dataType,
   success: function () {},
   error: function () {}
});
优缺点:
- 本身是针对MVC的编程,不符合现在前端MVVM的浪潮
 - 基于原生的XHR开发,XHR本身的架构不清晰,已经有了fetch的替代方案
 - JQuery整个项目太大,单纯使用ajax却要引入整个JQuery非常的不合理(采取个性化打包的方案又不能享受CDN服务)
 
2.axios
axios({
    method: 'post',
    url: '/user/12345',
    data: {
        firstName: 'Fred',
        lastName: 'Flintstone'
    }
})
.then(function (response) {
    console.log(response);
})
.catch(function (error) {
    console.log(error);
});
优缺点:
- 从 node.js 创建 http 请求
 - 支持 Promise API
 - 客户端支持防止CSRF
 - 提供了一些并发请求的接口(重要,方便了很多的操作)
 
3.fetch
try {
  let response = await fetch(url);
  let data = response.json();
  console.log(data);
} catch(e) {
  console.log("Oops, error", e);
}
优缺点:
优点:
- 符合关注分离,没有将输入、输出和用事件来跟踪的状态混杂在一个对象里
 - 更好更方便的写法
 - 更加底层,提供的API丰富(request, response)
 - 脱离了XHR,是ES规范里新的实现方式
 
缺点:
- fetchtch只对网络请求报错,对400,500都当做成功的请求,需要封装去处理
 - fetch默认不会带cookie,需要添加配置项
 - fetch不支持abort,不支持超时控制,使用setTimeout及Promise.reject的实现的超时控制并不能阻止请求过程继续在后台运行,造成了量的浪费
 - fetch没有办法原生监测请求的进度,而XHR可以
 
转自:https://blog.csdn.net/twodogya/article/details/80223508
[异步请求]ajax、axios、fetch之间的详细区别以及优缺点的更多相关文章
- ajax、axios、fetch之间的详细区别以及优缺点
		
1.jQuery ajax $.ajax({ type: 'POST', url: url, data: data, dataType: dataType, success: function () ...
 - Jquery ajax, Axios, Fetch区别
		
1. Jquery ajax, Axios, Fetch区别之我见 2. ajax.axios.fetch之间的详细区别以及优缺点
 - vue-d2admin-axios异步请求登录,先对比一下Jquery ajax, Axios, Fetch区别
		
先说一下对比吧 Jquery ajax, Axios, Fetch区别之我见 引言 前端技术真是一个发展飞快的领域,我三年前入职的时候只有原生XHR和Jquery ajax,我们还曾被JQuery 1 ...
 - [js开源组件开发]network异步请求ajax的扩展
		
network异步请求ajax的扩展 在日常的应用中,你可能直接调用$.ajax是会有些问题的,比如说用户的重复点击,比如说我只希望它成功提交一次后就不能再提交,比如说我希望有个正在提交的loadin ...
 - 异步请求Ajax(取得json数据)
		
异步请求Ajax 没有学习Ajax之前请求数据的时候都是整个页面全部刷新了一次,也就是每次请求都会重新请求所有的资源.但是在很多时候不需要页面全部刷新,仅仅是需要页面的局部数据刷新即可,此时需要发送异 ...
 - JavaScrpit中异步请求Ajax实现
		
在前端页面开发的过程中,经常使用到Ajax请求,异步提交表单数据,或者异步刷新页面. 一般来说,使用Jquery中的$.ajax,$.post,$.getJSON,非常方便,但是有的时候,我们只因为需 ...
 - 异步请求Ajax
		
AJAX:Asynchronous JS And XML,包括HTML.CSS.JS.DOM.XML.JSON等,客户端技术范畴.主要目标:发起异步请求/响应,实现页面内容的局部刷新,提高浏览体验:实 ...
 - 关于异步请求AJAX的具体解释
		
1,异步请求的方法步骤: 1,推断当前用户支持的浏览器类型 XMLHttpRequest:推断是否支持非IE浏览器,相应的创建方法:xmlhttp = new XMLHttpRequest(); wi ...
 - Jquery ajax, Axios, Fetch区别之我见(转载)
		
来源:https://segmentfault.com/a/1190000012836882 引言 前端技术真是一个发展飞快的领域,我三年前入职的时候只有原生XHR和Jquery ajax,我们还曾被 ...
 
随机推荐
- 更换镜像加快python pip 安装扩展库的速度
			
一些镜像源: 清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/ 阿里云 http://mirrors.aliyun.com/pypi/simple/ 中国科 ...
 - linux和window下生成任意大小的文件
			
在Windows环境下的实现方法 使用fsutil命令,在windows xp和win 7下应该都自带了这个命令.命令的格式是 fsutil file createnew 新文件名 文件大小.例如 ...
 - T-MAX——项目需求分析
			
这个作业属于哪个课程 2019秋福大软件工程实践Z班 这个作业要求在哪里 团队作业第二次-需求规格说明书 团队名称 T-MAX 这个作业的目标 撰写项目需求规格说明书,介绍团队分工 作业正文 T-MA ...
 - 深度学习: 学习率 (learning rate)
			
Introduction 学习率 (learning rate),控制 模型的 学习进度 : lr 即 stride (步长) ,即反向传播算法中的 ηη : ωn←ωn−η∂L∂ωnωn←ωn−η∂ ...
 - Matrix: 利用Matrix来设置ImageView的宽高,使图片能正常显示
			
在Android中加载ImageView一般都不会给ImageView的宽高设置一个确切的值,一般都是直接写成: <ImageView android:id="@+id/iv_test ...
 - SQL-W3School-函数:SQL NOW() 函数
			
ylbtech-SQL-W3School-函数:SQL NOW() 函数 1.返回顶部 1. NOW() 函数 NOW 函数返回当前的日期和时间. 提示:如果您在使用 Sql Server 数据库,请 ...
 - JDK&JRE
			
JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE.所以安装了JDK,就不用在单独安装JRE了. 其中的开发工具:编译工具(javac.exe) 打包工具(jar.ex ...
 - Redis Sentinel 高可用服务架构搭建
			
https://www.cnblogs.com/xishuai/p/redis-sentinel.html
 - osg::GraphicsContext::WindowingSystemInterface     Screen Resolution(屏幕分辨率)
			
unsigned int width, height; //获取系统分辨率 osg::GraphicsContext::WindowingSystemInterface *wsInterface = ...
 - Node.js ORM框架Sequelize使用示例
			
示例代码: const Sequelize = require('sequelize'); const sequelize = new Sequelize('database', 'username' ...