一种基于axios的重复请求处理方法技术

技术编号:39181677 阅读:7 留言:0更新日期:2023-10-27 08:29
本发明专利技术公开一种基于axios的重复请求处理方法,涉及前端应用技术领域;基于axios请求方式,对接口请求进行配置,并根据接口请求的关键信息加密生成所述接口的对应key,所述关键信息包括url信息、method信息和传参信息,通过请求接口映射队列apiQueue存储接口的key和相关信息;重复请求处理时:发送业务的请求至接口,拦截获取接口请求的配置信息,若接口完成第一次请求,响应拦截则在apiQueue中修改接口对应key的状态,并根据key存储接口返回数据,若接口重复请求,判断接口对应key在apiQueue里的状态,若为有效状态则获取接口对应key存储的返回数据;若为请求中状态则暂时挂起当前请求;若为无效状态或过期状态则处理垃圾数据,按照第一次请求的接口处理。按照第一次请求的接口处理。按照第一次请求的接口处理。

【技术实现步骤摘要】
一种基于axios的重复请求处理方法


[0001]本专利技术公开一种方法,涉及前端应用
,具体地说是一种基于axios的重复请求处理方法。

技术介绍

[0002]前端页面存在越来越多的可视化配置生成页面、自定义组件绑定接口、服务对应多个页面的场景,这些场景中存在大量的重复基建、业务请求,不利于提高页面显示效率。

技术实现思路

[0003]本专利技术针对现有技术的问题,提供一种基于axios的重复请求处理方法,使用axios拦截重复请求并返回上次请求结果,以提高页面显示效率。
[0004]本专利技术提出的具体方案是:
[0005]本专利技术提供一种基于axios的重复请求处理方法,基于axios请求方式,对接口请求进行配置,并根据接口请求的关键信息加密生成所述接口的对应key,所述关键信息包括url信息、method信息和传参信息,
[0006]通过请求接口映射队列apiQueue存储接口的key和相关信息;
[0007]重复请求处理时:发送业务的请求至接口,拦截获取接口请求的配置信息,若接口完成第一次请求,响应拦截则在apiQueue中修改接口对应key的状态,并根据key存储接口返回数据,
[0008]若接口重复请求,判断接口对应key在apiQueue里的状态,若为有效状态则获取接口对应key存储的返回数据;若为请求中状态则暂时挂起当前请求;若为无效状态或过期状态则处理垃圾数据,按照第一次请求的接口处理。
[0009]进一步,所述的一种基于axios的重复请求处理方法中所述根据接口请求的关键信息加密生成所述接口的对应key,包括:
[0010]将url信息、method信息和传参信息进行排序、过滤及序列化处理,
[0011]利用md5加密处理后信息生成所述接口的对应key。
[0012]进一步,所述的一种基于axios的重复请求处理方法中所述接口完成第一次请求,响应拦截,包括:
[0013]在apiQueue中修改接口对应key的状态,
[0014]根据key存储接口返回数据,
[0015]判断apiQueue里接口的执行函数队列fnQueue是否存在处理函数,是则说明在当前请求的过程中又发出了多次重复请求,执行相应函数处理后续的重复请求。
[0016]进一步,所述的一种基于axios的重复请求处理方法中所述判断接口对应key在apiQueue里的状态,若为有效状态则包括:
[0017]获取接口对应key存储的返回数据,使用promise的reject回调跳过真实发送ajax请求的过程,模拟返回请求数据。
[0018]进一步,所述的一种基于axios的重复请求处理方法中所述判断接口对应key在apiQueue里的状态,若为请求中状态则包括:
[0019]利用闭包的形式创建跳过真实发送ajax请求的函数,将所述函数push进apiQueue里,接口key对应的执行函数队列fnQueue等待第一次接口请求处理完后执行,暂时挂起当前请求。
[0020]本专利技术还提供一种基于axios的重复请求处理装置,包括接口发送请求拦截处理模块、接口信息缓存获取模块和接口发送响应拦截处理模块,
[0021]接口发送请求拦截处理模块基于axios请求方式,对接口请求进行配置,并根据接口请求的关键信息加密生成所述接口的对应key,所述关键信息包括url信息、method信息和传参信息,
[0022]接口信息缓存获取模块通过请求接口映射队列apiQueue存储接口的key和相关信息;
[0023]接口发送响应拦截处理模块重复请求处理时:发送业务的请求至接口,拦截获取接口请求的配置信息,若接口完成第一次请求,响应拦截则在apiQueue中修改接口对应key的状态,并根据key存储接口返回数据,
[0024]若接口重复请求,判断接口对应key在apiQueue里的状态,若为有效状态则获取接口对应key存储的返回数据;若为请求中状态则暂时挂起当前请求;若为无效状态或过期状态则处理垃圾数据,按照第一次请求的接口处理。
[0025]进一步,所述的一种基于axios的重复请求处理装置中所述接口发送请求拦截处理模块根据接口请求的关键信息加密生成所述接口的对应key,包括:
[0026]将url信息、method信息和传参信息进行排序、过滤及序列化处理,
[0027]利用md5加密处理后信息生成所述接口的对应key。
[0028]进一步,所述的一种基于axios的重复请求处理装置中所述接口发送响应拦截处理模块在接口完成第一次请求,响应拦截时,在apiQueue中修改接口对应key的状态,
[0029]根据key存储接口返回数据,
[0030]判断apiQueue里接口的执行函数队列fnQueue是否存在处理函数,是则说明在当前请求的过程中又发出了多次重复请求,执行相应函数处理后续的重复请求。
[0031]进一步,所述的一种基于axios的重复请求处理装置中所述接口发送响应拦截处理模块判断接口对应key在apiQueue里的状态,若为有效状态则包括:获取接口对应key存储的返回数据,使用promise的reject回调跳过真实发送ajax请求的过程,模拟返回请求数据。
[0032]进一步,所述的一种基于axios的重复请求处理装置中所述接口发送响应拦截处理模块判断接口对应key在apiQueue里的状态,若为请求中状态则包括:利用闭包的形式创建跳过真实发送ajax请求的函数,将所述函数push进apiQueue里,接口key对应的执行函数队列fnQueue等待第一次接口请求处理完后执行,暂时挂起当前请求。
[0033]本专利技术的有益之处是:
[0034]本专利技术提供一种基于axios的重复请求处理方法,根据业务场景对指定接口请求数据进行缓存处理操作,能够基于接口关键信息快速获取之前重复接口的返回数据并可直接使用,在不影响原有功能、效率的情况下能直接拓展使用,并且考虑到了接口请求配置和
接口响应数据的复杂度及数据结构,对不同浏览器运行环境做了兼容配置,确保数据的正确性、完整性,系统高效、稳定运行。
附图说明
[0035]图1是本专利技术方法流程示意图。
[0036]图2是本专利技术系统模块交互示意图。
具体实施方式
[0037]下面结合附图和具体实施例对本专利技术作进一步说明,以使本领域的技术人员可以更好地理解本专利技术并能予以实施,但所举实施例不作为对本专利技术的限定。
[0038]本专利技术提供一种基于axios的重复请求处理方法,基于axios请求方式,对接口请求进行配置,并根据接口请求的关键信息加密生成所述接口的对应key,所述关键信息包括url信息、method信息和传参信息,
[0039]通过请求接口映射队列apiQueue存储接口的key和相关信息;
[0040]重复请求处理时:发送业本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于axios的重复请求处理方法,其特征是基于axios请求方式,对接口请求进行配置,并根据接口请求的关键信息加密生成所述接口的对应key,所述关键信息包括url信息、method信息和传参信息,通过请求接口映射队列apiQueue存储接口的key和相关信息;重复请求处理时:发送业务的请求至接口,拦截获取接口请求的配置信息,若接口完成第一次请求,响应拦截则在apiQueue中修改接口对应key的状态,并根据key存储接口返回数据,若接口重复请求,判断接口对应key在apiQueue里的状态,若为有效状态则获取接口对应key存储的返回数据;若为请求中状态则暂时挂起当前请求;若为无效状态或过期状态则处理垃圾数据,按照第一次请求的接口处理。2.根据权利要求1所述的一种基于axios的重复请求处理方法,其特征是所述根据接口请求的关键信息加密生成所述接口的对应key,包括:将url信息、method信息和传参信息进行排序、过滤及序列化处理,利用md5加密处理后信息生成所述接口的对应key。3.根据权利要求1所述的一种基于axios的重复请求处理方法,其特征是所述接口完成第一次请求,响应拦截,包括:在apiQueue中修改接口对应key的状态,根据key存储接口返回数据,判断apiQueue里接口的执行函数队列fnQueue是否存在处理函数,是则说明在当前请求的过程中又发出了多次重复请求,执行相应函数处理后续的重复请求。4.根据权利要求1所述的一种基于axios的重复请求处理方法,其特征是所述判断接口对应key在apiQueue里的状态,若为有效状态则包括:获取接口对应key存储的返回数据,使用promise的reject回调跳过真实发送ajax请求的过程,模拟返回请求数据。5.根据权利要求1所述的一种基于axios的重复请求处理方法,其特征是所述判断接口对应key在apiQueue里的状态,若为请求中状态则包括:利用闭包的形式创建跳过真实发送ajax请求的函数,将所述函数push进apiQueue里,接口key对应的执行函数队列fnQueue等待第一次接口请求处理完后执行,暂时挂起当前请求。6.一种基于axios的重复请求处理装置,其特征是包括接口发送请求拦截处理模块、接口信息缓存获取模块和接口发送响应拦截处理模块,接口发...

【专利技术属性】
技术研发人员:范开鑫魏子重李锐
申请(专利权)人:山东浪潮科学研究院有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1