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

网站建设一年600杭州网页设计公司

网站建设一年600,杭州网页设计公司,wordpress整合openid,网站开发工具的功能说明&#xff1a;在实际使用中&#xff0c;重复的请求往往导致数据结果显示错乱&#xff0c;例如&#xff0c;重复请求2次&#xff0c;表格分页展示的是第一次请求的数据。这种情况希望在请求第二次前取消第一次的请求 1、取消重复请求示例 <template> <div>news组…

  说明:在实际使用中,重复的请求往往导致数据结果显示错乱,例如,重复请求2次,表格分页展示的是第一次请求的数据。这种情况希望在请求第二次前取消第一次的请求

1、取消重复请求示例

<template>

  <div>news组件</div>

  <el-button type="primary" @click="handleClick">点击</el-button>

</template>

<script lang="ts" setup>

import axios from "axios";

let url = 'API地址'

let control

const handleClick = () => {

  if(control) {

   control.abort('取消之前的请求')

  }

  control = new AbortController()

  axios.post(url, {

    参数1: "123540",

    参数2: "2025-04-01",

  },{   

    signal: control.signal // 传递 signal,必须要的

  }).then(res => {

    console.log(res)

    control = null

  }).catch(err=>{

    if(axios.isCancel(err)){

      console.log(err.message+'取消请求')

    }else{

      console.log(err + '其他错误')}

  })

}

</script>

 2、封装axios,支持参数自定义取消请求

    2.1封装成request.ts
import axios from 'axios';
import type { AxiosRequestConfig } from 'axios';// 存储pending请求
const pendingMap = new Map<string, AbortController>()// 生成请求key
const generateReqKey = (config: AxiosRequestConfig) => {const { url, method, params, data } = configreturn [url, method, JSON.stringify(params), JSON.stringify(data)].join('&')
}// 取消重复请求
const removePendingRequest = (config: AxiosRequestConfig, cancel: boolean = false) => {const requestKey = generateReqKey(config)if (pendingMap.has(requestKey)) {if (cancel) {pendingMap.get(requestKey)?.abort('取消重复请求')}pendingMap.delete(requestKey)}
}// 创建axios实例
const instance = axios.create({baseURL: 'https://example.cn',timeout: 10000
})// 请求拦截器
instance.interceptors.request.use(config => {// 由于 config 上不存在 cancelDuplicate 属性,这里使用可选链操作符来避免报错// 由于 AxiosRequestConfig 上不存在 cancelDuplicate 属性,我们可以使用类型断言来绕过类型检查const cancelDuplicate = (config as AxiosRequestConfig & { cancelDuplicate?: boolean })?.cancelDuplicate;if (cancelDuplicate === true) { // 默认不开启开启取消重复请求removePendingRequest(config, true)const controller = new AbortController()config.signal = controller.signalpendingMap.set(generateReqKey(config), controller)}return config
})// 响应拦截器
instance.interceptors.response.use(response => {const { config } = responseremovePendingRequest(config)return response.data
}, error => {if (axios.isCancel(error)) {console.log(`请求被取消: ${error.message}`)return Promise.reject(error)}return Promise.reject(error)
})export default instance
2.2 页面使用

只需要传入参数cancelDuplicate: true 就可以取消请求

<template><div><el-button type="primary" @click="handleClick">取消重复请求</el-button></div>
</template>
<script lang="ts" setup>
import request from '@/utils/request'const handleClick = () => {request.post('/aisleep-api/ammsreport/app/report/explain', {uid: "123540",day: "2025-04-01"}, {headers: {"Token": "eyJhbGciOiJIUzUxMiJ9.eyJ1c2VyX2lkIjoxMjM1NDAsInVzZXJfa2V5IjoiYzgxZmJmNmYtMTI4Mi00ZWQyLTlhZGMtM2ZiN2EyMjVjZDFkIiwidXNlcm5hbWUiOiIxMzY3MDAzNjk0NiJ9.teA6bo8aIJhmrTiMdwSVpYcUS_qZrxKk29qlnYz0Zzb184FrbQJyQZhWybDk4vWLKLzmomDA53Wv_INShfXJSA"},cancelDuplicate: true // 开启取消重复请求}).then(res => {console.log(res)}).catch(err => {})
}
const getData = async () => {request.post('/aisleep-api/ammsreport/app/report/explain', {uid: "123540",day: "2025-04-01"}, {headers: {"Token": "eyJhbGciOiJIUzUxMiJ9.eyJ1c2VyX2lkIjoxMjM1NDAsInVzZXJfa2V5IjoiYzgxZmJmNmYtMTI4Mi00ZWQyLTlhZGMtM2ZiN2EyMjVjZDFkIiwidXNlcm5hbWUiOiIxMzY3MDAzNjk0NiJ9.teA6bo8aIJhmrTiMdwSVpYcUS_qZrxKk29qlnYz0Zzb184FrbQJyQZhWybDk4vWLKLzmomDA53Wv_INShfXJSA"},}).then(res => {console.log(res)}).catch(err => {})
}
onMounted(() => {getData()setTimeout(() => {getData()}, 100)
})
</script>
3.3 运行结果


文章转载自:

http://yxLOk0K6.sjwqr.cn
http://pGh1r6Tr.sjwqr.cn
http://TKTyYGhK.sjwqr.cn
http://qnQIgTy2.sjwqr.cn
http://xUTbKwcj.sjwqr.cn
http://sLdkEAEA.sjwqr.cn
http://5IiUtw64.sjwqr.cn
http://cz5WhIvx.sjwqr.cn
http://uNIxZs66.sjwqr.cn
http://exbv8Pww.sjwqr.cn
http://s4ZjnIGu.sjwqr.cn
http://FfOoGNqe.sjwqr.cn
http://Gxpgfo7W.sjwqr.cn
http://YrUL8xff.sjwqr.cn
http://sE15tz0b.sjwqr.cn
http://SbQ6MFET.sjwqr.cn
http://mfRD6IPi.sjwqr.cn
http://if9PKJJn.sjwqr.cn
http://MqwzaSqJ.sjwqr.cn
http://AxCAqZFd.sjwqr.cn
http://8u3KUUFQ.sjwqr.cn
http://FbisN4Mx.sjwqr.cn
http://peVsES1p.sjwqr.cn
http://cBSEHUXD.sjwqr.cn
http://Kixjed7x.sjwqr.cn
http://36UN9jXU.sjwqr.cn
http://tnpxy0C9.sjwqr.cn
http://ojH49yhl.sjwqr.cn
http://EmsGqnKD.sjwqr.cn
http://89UKs3Y4.sjwqr.cn
http://www.dtcms.com/wzjs/698824.html

相关文章:

  • 番禺区网络推广渠道宁波专业seo服务
  • 企业网站建设 邮箱小型网站开发
  • 房屋中介网站建设免费ppt模板下载知乎
  • 建立企业网站步骤如何知道网站用什么程序做的
  • 做内部网站费用网页设计模板及代码
  • 用ps设计网站做多大的wordpress批量修改文章分类
  • 个人网站源代码下载wordpress注册错误
  • 好的设计作品网站南通城乡建设局网站招聘
  • 三水区网站建设安徽省住房和城乡建设厅网站6
  • 湖北网站推广宣传自己电脑做网站服务器违法吗
  • iis 7.0 网站配置wordpress footer设置
  • 如何免费做网站赚钱模具设计三大软件
  • 怎么制作网站软件网页4399小游戏
  • 余姚做网站阿里免费域名申请
  • 网站建设策划怎么沟通支付宝小程序api
  • 网站页面设计培训班设计师素材库
  • 简述网站一般建设的流程图fizz wordpress
  • wordpress 二次元模板昆明seo外包
  • 怎样写网站描述简约大方网站
  • 禁止指定ip访问网站那家网站做的效果好
  • 佛山市外贸网站建设搭建网站需要学什么软件
  • 做网站必须要买空间上海 装修公司推荐
  • 网站建设办公怎么注册域名免费
  • 什么网站可以做报名系统wordpress速度慢解决方法
  • 怎么做网站服务器专业建站方案
  • 什么是网站二级目录企业网站建设计划
  • 小型求职招聘网站源码 phpwordpress小工具开发教程
  • 外贸商城网站系统临汾做网站的公司
  • 网站设计建设公司教程软件开发接单网站
  • 这么用自己的电脑做网站服务器网站建设合同建设方注意事项