当前位置: 首页 > news >正文

怎么优化网站代码上海最近3天疫情情况

怎么优化网站代码,上海最近3天疫情情况,大学生做推送的网站,公关公司的职位前言 最近开发过程中,总是遇到想把正在请求的axios接口取消,这种情况有很多应用场景,举几个例子: 弹窗中接口请求返回图片,用于前端展示,接口还没返回数据,此时关闭弹窗,需要中断接…

前言

最近开发过程中,总是遇到想把正在请求的axios接口取消,这种情况有很多应用场景,举几个例子:

  1. 弹窗中接口请求返回图片,用于前端展示,接口还没返回数据,此时关闭弹窗,需要中断接口请求
  2. tab标签页根据后端返回数据,依次渲染,频繁切换标签,需要中断接口请求
  3. for循环中请求接口,遇到跳出循环情况,也需要中断接口请求
  4. 跳转路由,离开页面时,可能也需要中断接口请求

下面就是根据以上问题,找到的解决方案

正文

因为axios不同版本取消请求是不同的,目前最新的 axios 的取消请求api,推荐使用 AbortController ,旧版本的 CancelToken 在 v0.22.0 后弃用,截止到此片文章发表,npm上的axios版本号已经更新到v1.5.1,但是相信有一些项目的版本还是v0.x.x的,所以下面分别介绍两种取消方式,大家根据自己项目axios版本号,自行查看

在这里插入图片描述

v0.22.0 CancelToken

  1. get请求
<el-button type="primary" @click="sendGet()">发送get请求</el-button>
<el-button type="danger" @click="cancel()">取消请求</el-button>import {ref,onMounted,onUnmounted} from 'vue'
import axios from "axios";let source:any = null;
const sendGet = ()=>{//可以理解为给定每个接口一个标识source = axios.CancelToken.source();axios.get('请求url',{cancelToken: source.token}).then(res => {console.log("get请求",res)}).catch(err => {if (axios.isCancel(err)) {console.log('请求取消', err);} else {console.log('其他错误', err)}});
}const cancel = ()=>{source && source.cancel('手动调用 source.cancel方法,手动取消请求');
}

在这里插入图片描述

  1. post请求
<el-button type="success" @click="sendPost()">发送post请求</el-button>
<el-button type="danger" @click="cancel()">取消请求</el-button>import {ref,onMounted,onUnmounted} from 'vue'
import axios from "axios";let source:any = null;
const sendPost = ()=>{source = axios.CancelToken.source();axios.post("请求url",{},//传参,没有也必须加上{}{cancelToken: source.token}).then((res) => {console.log("post请求",res)}).catch(err => {if (axios.isCancel(err)) {console.log('请求取消', err);} else {console.log('其他错误', err)}})
}const cancel = ()=>{source && source.cancel('手动调用 source.cancel方法,手动取消请求');
}

在这里插入图片描述

v1.5.1 AbortController

使用fetch() 是一个全局方法,它的请求是基于 Promise 的
method - 请求方法,默认GET
signal - 用于取消 fetch

<el-button type="primary" @click="sendNewGet()">发送get请求</el-button>
<el-button type="danger" @click="cancelController()">取消新版请求</el-button>import {ref,onMounted,onUnmounted} from 'vue'
import axios from "axios";let controller:any = null;const sendNewGet = ()=>{controller = new AbortController();   // 新建一个AbortController实例fetch('请求url',{signal: controller.signal    // signal是AbortController实例的属性}).then(res => {console.log("新版get请求",res)//处理返回数据res.json().then(res1 => {console.log(res1)})}).catch(err => {console.log(err)});
}const cancelController = ()=>{controller && controller.abort();//调用abort方法
}
http://www.dt0577.cn/news/2562.html

相关文章:

  • 企业网站的建设毕业论文关键词搜索网站
  • 湛艺建设集团网站快速网站推广公司
  • 公司网站制作流程2016seo网课培训
  • 郑州企业网站推广外包google网页版登录入口
  • 玛丁图商城网站开发镇江百度推广公司
  • 江门专业网站制作费用海外网络推广方案
  • 韶关市住房和城乡建设局网站网络推广平台大全
  • 网站图片文字排版错误百度云搜索引擎入口盘多多
  • 成都网站推广找四川冠辰宁波seo网页怎么优化
  • 江门网站建设公司百度云账号登录
  • 合肥网站建设制作seo排名优化app
  • 给别人做网站必须有icp杭州seo优化
  • 大渡口网站建设哪家好seo索引擎优化
  • 带平台的房子装修图片大全seo是指什么岗位
  • 全网网站推广2023年第三波新冠9月
  • 宁波网站建设服务商学生个人网页优秀模板
  • 大型html5浅蓝色网站设计公司dede模板百度贴吧网页入口
  • 企业展示网站西安网站设计开发
  • 做电子签章登录哪个网站东莞网站自动化推广
  • 网站右下角广告展示代码抖音seo关键词优化
  • 云南网站优化建站浙江seo公司
  • 网站外链是什么意思小果seo实战培训课程
  • 昆山有做网站的公司吗推广赚佣金
  • 做网站蓝色和什么颜色搭配好看谷歌搜索广告优化
  • b2b电子商务平台选择有哪些合肥网站优化技术
  • 免费视频网站制作佛山做网站推广的公司
  • 我们做av的搬运工网站深圳排名seo公司
  • 做漫画网站 漫画哪找品牌定位
  • html网站 怎么做seo网站备案是什么意思
  • 益阳市赫山区建设局网站新手怎样做网络推广