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

江门专业网站建设公司wordpress部署wamp

江门专业网站建设公司,wordpress部署wamp,专业的企业网站定制公司,wordpress是否免费AbortController AbortController() 构造函数创建了一个新的 AbortController 实例。MDN官网给出了一个利用AbortController取消下载视频的例子。 核心逻辑是#xff1a;利用AbortController接口的只读属性signal标记fetch请求#xff1b;然后在需要取消请求的时候#xff0…AbortController AbortController() 构造函数创建了一个新的 AbortController 实例。MDN官网给出了一个利用AbortController取消下载视频的例子。 核心逻辑是利用AbortController接口的只读属性signal标记fetch请求然后在需要取消请求的时候调用AbortController接口的abort()方法立即取消请求并抛出一个错误AbortError。 const controller new AbortController(); const signal controller.signal;const url video.mp4; const downloadBtn document.querySelector(.download); const abortBtn document.querySelector(.abort);downloadBtn.addEventListener(click, fetchVideo);abortBtn.addEventListener(click, () {controller.abort();console.log(Download aborted); });function fetchVideo() {fetch(url, { signal }).then((response) {console.log(Download complete, response);}).catch((err) {console.error(Download error: ${err.message});}); }只读属性signal AbortController接口的只读属性 signal 返回一个 AbortSignal 实例对象该对象可以根据需要处理 DOM 请求通信既可以建立通信也可以终止通信。 方法:abort() AbortController接口的 abort() 方法会在 DOM 请求完成之前中止它。它能够中止 fetch 请求、各种响应主体或者流的消耗。 取消Axios请求 既然 AbortController接口的 abort() 方法可以终止fetch请求、各种响应主体或者流的消耗那么我们考虑将其和axios结合来取消axios的请求。 查看axios官网也给出了相关介绍 为了便于在项目中使用我们在对其进行一个简单的封装示例如下 //axios配置function createRequest() {const request axios.create({baseURL: https://geo.datav.aliyun.com,headers: {Content-Type: application/json;charsetutf-8,}})const cachePool new Map()const encode (baseURL, method, url, params) {const str ${baseURL}_${url}_${method}_${JSON.stringify(params || {})};const encoder new TextEncoder();//接受一个字符串作为输入返回一个包含 UTF-8 编码的文本的 Uint8Arrayconst bytes encoder.encode(str)//使用Base64编码算法进行编码:将一个二进制字符串例如将字符串中的每一个字节都视为一个二进制数据字节编码为 Base64 编码的 ASCII 字符串const encoded btoa(String.fromCharCode(...bytes))return encoded}/*** 对Axios请求实例的config进行编码* */const configEncode (config) {//获取基本信息const baseURL config.baseURL,method config.method,url config.url,params config?.params || config?.data || {};//返回编码结果return encode(baseURL, method, url, params);}//请求拦截器request.interceptors.request.use((config) {// 在发送请求之前做些什么console.log(config)const controller new AbortController()config.signal controller.signal//根据config配置信息进行编码const encodeKey configEncode(config)console.log(encodeKey:, encodeKey)//判断请求是否存在if (cachePool.get(encodeKey)) {controller.abort()console.log(cachePool--cancel:, cachePool)} else {cachePool.set(encodeKey, { abort: controller })console.log(cachePool--set:, cachePool)}return config;},(error) {// 对请求错误做些什么console.log(error);return Promise.reject(error);});//响应拦截器// 添加响应拦截器request.interceptors.response.use(function (response) {// 2xx 范围内的状态码都会触发该函数。// 对响应数据做点什么const encodeKey configEncode(response.config)console.log(response---:, response, encodeKey)//缓存对象const cacheItem cachePool.get(encodeKey)if (cacheItem) {console.log(res-success:删除缓存对象)cachePool.delete(encodeKey)}return response;}, function (error) {// 超出 2xx 范围的状态码都会触发该函数。// 对响应错误做点什么console.log(axios-error:, error)if (error.code ERR_CANCELED) {//被取消的axios请求console.warn(被取消的重复请求~)} else {//其它错误return Promise.reject(error);}});//返回return request} 接下来做个简单的测试 const request createRequest()const getData () {return request.get(/areas_v3/bound/420800_full.json, {params: {a: 1}})}getData().then(result {console.log(result)})getData().then(result {console.log(result)})getData().then(result {console.log(result)}) 查看执行结果连续发送了3次请求后两个被取消掉最终只有一个请求正常返回了请求结果。 其它取消Axios请求的方式 参考VueAxios前端拦截器_vue axios拦截器-CSDN博客
http://www.zqtcl.cn/news/457985/

相关文章:

  • 澄迈网站新闻建设宣传视频
  • 南昌优化网站排名公司建设网站的步骤
  • 一个人做网站wordpress如何加链接
  • 查网站服务器所在地笔记本电脑安装wordpress
  • 石家庄网站推广专家php网站分类目录源码
  • 盐城市城乡建设局门户网站低代码开发软件
  • 网站建设中的html深圳建设网站需要多少钱
  • 南阳公司网站制作品牌推广工作内容
  • 网站被刷流量怎么办红色php企业网站模板下载
  • 做现货黄金的金融网站设计平台app
  • 淘宝客手机网站搭建网站设计专业公司
  • 做网站用的图片怎样压缩钓鱼网站的制作教程
  • 建设网站类型wordpress竖版图片尺寸
  • 网站建设数据库ER图怎么画公司网站建设建议书
  • 网站建设网站制作有限排名优化课程
  • 绵竹网站建设佛山网络营销推广
  • 网站备案名称重复学会网站建设目的
  • 网站套餐到期什么意思孝感的网站建设
  • 网站制作费用多少钱房地产建筑设计公司
  • 网站优化要素做网站看百度脸色
  • 软件开发 网站开发区别seo怎么刷关键词排名
  • python 网站开发必会智能网站
  • 重庆建设摩托车官方网站网络是干什么的
  • 建筑工程网站源码wordpress 多域名 图片不显示
  • 大型网站建设优化排名wordpress 投稿 插件
  • 二维码的网站如何做静安免费网站制作
  • 微网站免费模板管理网络的网站
  • 网站下载软件政企网站建设
  • 网站设计为什么要域名北京移动端网站设计
  • 自做网站多少钱哪个网站的课件做的好