Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >只知道ajax?你已经out了

只知道ajax?你已经out了

原创
作者头像
前端林子
发布于 2018-11-17 06:00:35
发布于 2018-11-17 06:00:35
3.8K00
代码可运行
举报
文章被收录于专栏:前端技术总结前端技术总结
运行总次数:0
代码可运行

随着前端技术的发展,请求服务器数据的方法早已不局限于ajax、jQuery的ajax方法。各种js库已如雨后春笋一般,蓬勃发展,本文主要想介绍其中的axios和fetch。

0.引入

ajax(Asynchronous JavaScript and XML--异步JavaScript 和 XML),是一种客户端向服务器请求数据的方式,并且不需要去刷新整个页面;它依赖的是XMLHttpRequest对象。在我之前的文章中,介绍过ajax的创建过程,可以移步这次,我们聊聊ajax的创建过程

当然项目中我们一般没有直接使用原生的ajax,而是使用javascript的各种库,例如jQuery。jQuery对原生的XHR对象进行了封装,还增添了对JSONP的支持,且经过多年维护,各种文档资料非常丰富,非常适合学习和上手。不过随着前端技术的快速发展,react、vue框架的兴起,XHR对象都有了替代的方案(fetch)。另外如果为了要使用$.ajax方法,就导入整个jQuery这个大而全的库,也未免显得臃肿了些。所以本文将介绍两个目前常用的获取服务器数据的js库:axios和fetch。

1.axios

是一个基于 Promise 的 HTTP 库,可以用在浏览器和 node.js 中。

随着 vuejs 作者尤雨溪发布消息,不再继续维护vue-resource,并推荐大家使用 axios 开始,axios 进入了很多人的目光。axios本质也是对原生的XHR的封装,不过它是Promise 的实现版本,符合最新的ES规范,axios的几条特性:

(1)从浏览器中创建XHR;

(2)从node.js创建http请求;

(3)支持Promise API

(4)客户端支持防御CSRF

(5)提供了一些并发请求的接口

使用npm安装:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 npm install axios

示例--执行GET请求:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//axios
axios.get('/user', {
    params: {
        ID: 12345
    }
}).then(function (response) {
    console.log(response);
}).catch(function (error) {
    console.log(error);
});

axios的优点:体积较小、使用简单、还可以执行多个并发请求,并且可以直接得到返回结果,不会像fetch需要自己去转换,个人还是比较喜欢使用axios。

2.fetch

fetch API脱离了XHR,是基于Promise设计。旧浏览器不支持Promise,需要使用polyfill es6-promise。

2.1 使用

使用npm安装:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
npm install whatwg-fetch --save

示例--执行GET请求:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//use 'whatwg-fetch'
import 'whatwg-fetch'

var result = fetch(url, {
    credentials: 'include',//跨域请求带上cookie 
    headers: { 'Accept': 'application/json, text/plain, */*' }//设置http请求的头部信息 
}).then(res => {
    return res.text() //将请求来的数据转化成 文本形式 
    // return res.json() //将数据转换成 json格式
}).then(text => {
    console.log(text)
}).catch(e => {
    throw (e)
})

可以在这个代码的基础上,增加一些操作,比如说在对请求数据处理前,先检查下返回结果的状态。对状态非200的结果,增加对应状态码的错误提示;在得到请求数据后,转换成需要的文本格式,或者json格式;另外,还可以对转换后的数据进行进一步的处理,比如请求的数据返回的是下划线类型的数据,可以处理成驼峰形式。

2.2 fetch的优点及需要注意的地方

为什么要使用fetch呢?直接使用jQuery和axios也能满足我们的开发需要。看了些文章,提及到使用fetch的好处:

  • 脱离的XHR,是ES规范里新的实现方式,支持async/await;
  • 更加底层,提供了丰富的API(request,response);
  • 符合关注分离,没有将输入、输出和用事件来跟踪的状态混杂在一个对象里;
  • 更好更方便的写法;

需要注意的是:

  • 兼容性;
  • 当服务器返回400、500等错误码时并不会reject,只有网络错误等导致请求不能完成时,fetch才会被reject;
  • fetch不支持abort,不支持超时控制,使用setTimeout及Promise.reject的实现的超时控制,并不能阻止请求过程继续在后台运行,造成了流量的浪费;
  • fetch没有办法原生监测请求的进度,而XHR可以;
  • fetch跨域请求时,默认不会带cookie,如果需要带cookie,则要指定:credentials:’include’,例如:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var result = fetch(url, {
    credentials: 'include',
});

3.小结

本文简单地分别介绍了axios和fetch的使用方法和特点。如果要详细了解fetch的应用,推荐阅读 MDN Fetch 教程WHATWG Fetch 规范。如有问题,欢迎指正。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
混合推荐系统:结合协同过滤与内容推荐
随着互联网的迅猛发展,各类信息和产品日益增多,用户面临的信息过载问题越来越严重。推荐系统作为解决信息过载问题的重要技术手段,得到了广泛的应用。推荐系统通过分析用户的历史行为和兴趣偏好,向用户推荐可能感兴趣的内容或产品,提升用户体验。
二一年冬末
2024/08/04
9860
【基于协同过滤算法的推荐系统项目实战-2】了解协同过滤推荐系统
用户行为能够真实的反映每个用户的偏好和习惯,其中的显示反馈数据会比较稀疏,隐式的反馈数据蕴含了大量的信息。
程序员洲洲
2024/06/07
5280
【基于协同过滤算法的推荐系统项目实战-2】了解协同过滤推荐系统
推荐系统基础:算法与应用
推荐系统是一种利用算法和数据分析技术为用户提供个性化推荐的技术。它在电子商务、社交媒体、内容提供等领域发挥着重要作用。本文将详细介绍推荐系统的基础知识,包括常见的算法及其应用,并通过一个完整的项目展示推荐系统的部署过程。
二一年冬末
2024/08/06
4360
一文全面了解基于内容的推荐算法
这篇文章我们主要关注的是基于内容的推荐算法,它也是非常通用的一类推荐算法,在工业界有大量的应用案例。
AI科技大本营
2019/07/12
5.3K0
一文全面了解基于内容的推荐算法
基于内容的推荐系统:原理与实现
推荐系统在当今的信息爆炸时代显得尤为重要,它帮助用户在海量信息中找到最感兴趣的内容。推荐系统主要分为两类:协同过滤推荐和基于内容的推荐。本篇博客将详细介绍基于内容的推荐系统的原理、实现过程及其在实际项目中的应用,结合实例分析,展示如何构建一个有效的基于内容的推荐系统。
二一年冬末
2024/08/05
7460
独家 | 一文读懂推荐系统知识体系-上(概念、结构、算法)
本文主要阐述: 推荐系统的3个W 推荐系统的结构 推荐引擎算法 浏览后四章的内容请见下篇。 1. 推荐系统的3个W 1.1 是什么(What is it?) 推荐系统就是根据用户的历史行为、社交关系、
数据派THU
2018/03/26
3.6K0
独家 | 一文读懂推荐系统知识体系-上(概念、结构、算法)
探索Python中的推荐系统:混合推荐模型
在推荐系统领域,混合推荐模型是一种将多种推荐算法组合起来,以提高推荐效果和覆盖范围的方法。本文将详细介绍混合推荐模型的原理、实现方式以及如何在Python中应用。
Echo_Wish
2024/03/30
5530
Python数据分析与机器学习在电子商务推荐系统中的应用
在构建推荐系统之前,需要收集并预处理数据。电子商务平台上可以收集的数据包括用户行为数据(点击、浏览、购买等)、用户属性数据(年龄、性别等)和物品属性数据(类别、价格等)。
屿小夏
2024/06/11
2760
Python数据分析与机器学习在电子商务推荐系统中的应用
个性化推荐算法总结[通俗易懂]
并且,推荐系统能够很好的发掘物品的长尾,挑战传统的2/8原则(80%的销售额来自20%的热门品牌)。
全栈程序员站长
2022/08/15
2.2K0
个性化推荐算法总结[通俗易懂]
推荐系统算法初探
0. 序言 最近因为PAC平台自动化的需求,开始探坑推荐系统。这个乍一听去乐趣无穷的课题,对于算法大神们来说是这样的: 而对于刚接触这个领域的我来说,是这样的: 在深坑外围徘徊了一周后,我整理了一些推荐系统的基本概念以及一些有代表性的简单的算法,作为初探总结,也希望能抛砖引玉,给同样想入坑的伙伴们提供一些思路。 1. 什么是推荐系统? 推荐系统是啥? 如果你是个多年电商(剁手)党,你会说是这个: 如果你是名充满文艺细胞的音乐发烧友,你会答这个: 如果你是位活跃在各大社交平台的点赞狂魔,你会答
腾讯大数据
2018/01/26
1.3K0
协同过滤技术在推荐系统中的应用
协同过滤(Collaborative Filtering)是推荐系统中最常用和最有效的技术之一。它基于用户和项目之间的交互数据来进行推荐,而无需了解项目的具体内容。协同过滤技术主要分为两大类:基于用户的协同过滤(User-based Collaborative Filtering)和基于项目的协同过滤(Item-based Collaborative Filtering)。以下是协同过滤技术在推荐系统中的详细应用介绍。
二一年冬末
2024/08/07
6430
读书笔记 |《推荐系统实践》- 个性化推荐系统总结
推荐系统实践 对于推荐系统,本文总结内容,如下图所示: 推荐系统.png 文章很长,你可以跳着看你感兴趣的部分。 一、什么是推荐系统 1. 为什么需要推荐系统 结论是,为了解决互联网时代下的信息超载问
小莹莹
2018/04/20
1.9K0
读书笔记 |《推荐系统实践》- 个性化推荐系统总结
推荐系统产品与算法概述 | 深度
作者在《推荐系统的工程实现》(点击蓝字可回顾)这篇文章的第五部分“推荐系统范式”中讲到工业级推荐系统有非个性化范式、完全个性化范式、群组个性化范式、标的物关联标的物范式、笛卡尔积范式等 5种 常用的推荐范式。本文会按照这5大范式来讲解常用的推荐算法,但不会深入讲解算法的实现原理,只是概述算法的实现思路,后面的系列文章我会对常用的重点算法进行细致深入剖析。
AI科技大本营
2019/06/20
1.7K0
推荐系统产品与算法概述 | 深度
快点进来get“推荐系统常用的推荐算法”
一、推荐系统概述和常用评价指标 1.1 推荐系统的特点 在知乎搜了一下推荐系统,果真结果比较少,显得小众一些,然后大家对推荐系统普遍的观点是: (1)重要性UI>数据>算法,就是推荐系统中一味追求先
小莹莹
2018/04/25
1.3K0
快点进来get“推荐系统常用的推荐算法”
亚马逊商品推荐系统
推荐系统首先收集用户的历史行为数据,然后通过预处理的方法得到用户-评价矩阵,再利用机器学习领域中相关推荐技术形成对用户的个性化推荐。有的推荐系统还搜集用户对推荐结果的反馈,并根据实际的反馈信息实时调整推荐策略,产生更符合用户需求的推荐结果。为了更好的去了解一个推荐系统,从0到1了解推荐过程,我们通过一些网上开源的数据来搭建一个推荐系统
Zephery
2025/04/21
4860
亚马逊商品推荐系统
推荐算法之协同过滤
刘建银
2017/07/20
5K0
推荐算法之协同过滤
探索Python中的推荐系统:内容推荐
在推荐系统领域,内容推荐是一种常用的方法,它根据用户的历史行为数据或偏好信息,分析用户对内容的喜好,然后推荐与用户喜好相似的其他内容。本文将详细介绍内容推荐的原理、实现方式以及如何在Python中应用。
Echo_Wish
2024/03/29
4190
基于Elastic Search的推荐系统“召回”策略
当我们打开一个资讯APP刷新闻时,有没有想过,系统是如何迅速推送给我们想看的内容?资讯APP背后有一个巨大的内容池,系统是如何判断要不要将某条资讯推送给我们的呢?这就是今天想跟大家探讨的问题——推荐系统中的“召回”策略。
第四范式-先荐
2019/10/31
1.6K0
基于Elastic Search的推荐系统“召回”策略
【机器学习】机器学习与推荐系统在电子商务中的融合应用与性能优化新探索
在电子商务领域,推荐系统已经成为提高用户体验和推动销售增长的重要工具。通过分析用户行为数据,推荐系统能够向用户提供个性化的商品推荐,从而提高用户的满意度和购买率。随着机器学习技术的发展,推荐系统的性能和智能化水平得到了显著提升。本文将探讨机器学习与推荐系统在电子商务中的融合应用,并重点讨论性能优化的新方法和新探索。
E绵绵
2024/06/06
4210
【机器学习】机器学习与推荐系统在电子商务中的融合应用与性能优化新探索
再看经典召回算法
在学习和应用推荐算法的过程中,发现越来越多的文章在描述深度学习应用在推荐系统上的方法,不可否认深度学习的发展给推荐系统带来了巨大的进步,但是传统的经典算法仍然是非常值得学习的,毕竟可以作为一个比较高的baseline,同时也是快速上手和搭建推荐系统的好方法,因此这篇文章就主要总结和梳理一下传统的经典召回算法。
DeePR
2020/10/18
1.6K0
再看经典召回算法
推荐阅读
相关推荐
混合推荐系统:结合协同过滤与内容推荐
更多 >
交个朋友
加入[跨境业务] 腾讯云官方方案交流站
共享跨境方案指南 洞察行业动向
加入HAI高性能应用服务器交流群
探索HAI应用新境界 共享实践心得
加入[游戏服务器] 腾讯云官方交流站
游戏服运维小技巧 常见问题齐排查
换一批
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验