js 频繁点击切换两个按钮发送请求,显示最后一次发送请求的结果

news/2025/11/19 14:46:37/文章来源:https://www.cnblogs.com/alinelong/p/19242447

在JavaScript中处理频繁点击切换两个按钮发送请求并显示最后一次发送请求的结果,可以通过以下几种方法来实现:

方法1:使用Promiseasync/await

你可以使用async/await来处理异步请求,并确保在发送请求时,之前的请求被取消或者忽略。这可以通过AbortController来实现。

 

let controller = null;async function fetchData(url) {if (controller) {controller.abort(); // 取消之前的请求}controller = new AbortController();const signal = controller.signal;try {const response = await fetch(url, { signal });const data = await response.json();console.log(data); // 处理数据return data; // 返回数据,可以在这里更新UI} catch (error) {if (error.name === 'AbortError') {console.log('Fetch aborted'); // 忽略取消的错误} else {console.error('Error:', error); // 处理其他错误}}
}// 绑定到按钮点击事件
document.getElementById('button1').addEventListener('click', () => {fetchData('https://api.example.com/data1');
});document.getElementById('button2').addEventListener('click', () => {fetchData('https://api.example.com/data2');
});

  

方法2:使用setTimeout延迟执行请求

如果你只是想简单地避免在短时间内多次点击导致的问题,可以使用setTimeout来延迟执行下一次请求,直到当前请求完成。

let requestPending = false;function fetchData(url) {if (requestPending) return; // 如果请求正在进行,则直接返回requestPending = true;setTimeout(() => { requestPending = false; }, 500); // 设置一个延迟,例如500毫秒后重置状态fetch(url).then(response => response.json()).then(data => {console.log(data); // 处理数据// 更新UI等操作}).catch(error => console.error('Error:', error)).finally(() => { requestPending = false; }); // 确保在完成后重置状态
}// 绑定到按钮点击事件
document.getElementById('button1').addEventListener('click', () => {fetchData('https://api.example.com/data1');
});document.getElementById('button2').addEventListener('click', () => {fetchData('https://api.example.com/data2');
});

  

方法3:使用fetch的缓存机制(不常用)

对于某些场景,如果你只是想获取最后一次请求的结果,可以考虑不立即处理响应,而是缓存它,然后在最后一次请求完成后处理。这种方法比较复杂,通常不推荐,除非有特定需求。例如:

let lastResponse = null;
let lastUrl = ''; // 用于记录最后一次请求的URL,以防万一需要区分处理不同的URL响应。function fetchData(url) {fetch(url).then(response => response.json()).then(data => {lastResponse = data; // 缓存最后一次响应的数据lastUrl = url; // 记录最后一次请求的URL(可选)if (url === lastUrl) { // 确保是最后一次请求的响应被处理(如果有多个按钮且有不同URL的情况)console.log(lastResponse); // 处理数据(只在最后一次请求后)// 更新UI等操作(只在最后一次请求后)}}).catch(error => console.error('Error:', error));
}

  

注意:这种方法在某些情况下可能不够准确,特别是在快速连续点击时。更好的方式是使用AbortController或延迟执行。

总结:推荐使用AbortController结合async/await的方法,它既简洁又有效

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/970037.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

缝裤子 —— 北京八达岭附件 —— 河北怀来县城(张家口市)—— 2025年11月份

缝裤子 —— 北京八达岭附件 —— 河北怀来县城(张家口市)—— 2025年11月份本博客是博主个人学习时的一些记录,不保证是为原创,个别文章加入了转载的源地址,还有个别文章是汇总网上多份资料所成,在这之中也必有…

2025年餐饮火锅底料批发厂家权威推荐榜单:袋装火锅底料/火锅底料/火锅底料牛油入境美国源头厂家精选

在餐饮行业持续复苏与火锅品类稳定增长的背景下,火锅底料作为决定火锅风味的核心元素,其品质稳定性、风味独特性与供应保障能力成为餐饮企业选择供应商的关键考量。行业数据显示,2025年中国火锅底料市场规模预计突破…

如何通过Python SDK获取Collection中已存在的Doc

本文介绍如何通过Python SDK,根据ID或ID列表获取Collection中已存在的Doc。 说明 如果指定id不存在,则该id对应的Doc为空。 前提条件已创建Cluster 已获得API-KEY 已安装最新版SDK接口定义 collection.fetch(ids: Un…

AI养蛊:让钓鱼邮件和反钓鱼邮件系统打一架

假设现在有个角色A,通过mba模型实现强化学习下的优化钓鱼邮件内容;还有一个角色B,通过Q-learning的方式实现强化学习下的钓鱼邮件内容识别。整个流程就是攻击方不断发送不同类型的钓鱼邮件,防御方在识别的过程中逐…

lasso

lasso好的,这是一个非常核心的概念。我们用一个非常直观的方式来解释它。 一句话概括 正则罚项(Lasso)是一个“惩罚机制”,它通过迫使模型变得“简单”和“稀疏”来防止过拟合,并同时进行特征选择。1. 它要解决什…

当下采购管理系统开发公司哪家可靠

摘要 采购管理系统行业在2025年持续蓬勃发展,数字化转型推动企业采购流程智能化。本文基于行业数据和用户反馈,为您解析当前可靠的采购管理系统开发公司排名,并提供详细的选择指南和表单参考,助您高效决策。 正文内…

质量好的工业吸尘器推荐:多场景适用品牌解析

在工业生产、仓储物流、制造业等场景中,清洁工作的效率与质量直接影响生产环境与作业安全。质量好的工业吸尘器凭借强劲的吸力、耐用的性能及广泛的适用性,成为企业维持洁净环境的重要设备。选择一款合适的工业吸尘器…

2025年11月岩心钻机供应商排行榜单精选

摘要 岩心钻机行业作为矿山勘探的核心装备领域,近年来随着矿产资源需求的增长而快速发展。2025年,行业整体趋向智能化、高效化转型,厂家竞争加剧。本榜单基于市场调研、用户口碑和技术参数综合评估,为采购决策提供…

工业吸尘器十大品牌推荐 2025年热门型号选购参考

在工业生产环境中,保持洁净的作业空间不仅关乎生产效率,更与员工健康和产品质量密切相关。工业吸尘器作为清洁设备中的重要工具,能够有效清除粉尘、碎屑等杂物,广泛应用于制造业、仓储物流、汽车维修等多个领域。面…

今年采购管理系统服务推荐榜

摘要 随着数字化转型加速,2025年采购管理系统行业迎来爆发式增长,AI和云计算技术的集成使得采购流程更加智能化和高效。根据Gartner报告,全球采购管理软件市场年增长率达10%,企业寻求可靠服务商以优化供应链成本。…

2025年市场履带钻机供货厂家榜单Top5权威解析

摘要 2025年履带钻机行业随着基础设施建设和矿山开采需求的增长,呈现技术升级和市场扩张趋势。本文基于行业数据、用户口碑和技术评测,为您精选Top5供货厂家榜单,旨在帮助采购商高效选择可靠合作伙伴。榜单综合考量…

2025年岩心钻机供货商推荐排行榜单Top10

摘要 岩心钻机行业在2025年持续稳健发展,随着矿产资源勘探需求的增长,高品质岩心钻机供应商成为市场焦点。本文基于行业数据、用户口碑和技术评测,整理出一份权威的岩心钻机供货商推荐排行榜单,旨在帮助用户快速筛…

Openwrt-Ipv6设置(中继获取)

本文介绍了如何将openwrt作为二级路由时, 通过中继获取ipv6IPv6测试网站: IPv6 测试 参考: OpenWrt 开启 IPv6 中继 | Js Blog 简单Openwrt ipv6配置,Openwrt WAN6中继模式获取原生ipv6地址,无需PD - 路由器记录 二…

今年采购管理系统开发公司推荐几家

摘要 随着数字化转型加速,2025年采购管理系统行业迎来爆发式增长,企业通过智能系统实现采购流程优化、成本控制和效率提升。本文基于市场调研和用户反馈,推荐十家领先的开发公司,并提供详细排名和数据分析,供企业…

工厂用工业吸尘器选购指南与实用推荐

在工业生产环境中,工厂用工业吸尘器作为维持车间洁净、保障生产安全的重要设备,其性能直接影响作业环境质量与员工健康。这类设备通常具备强大的吸力、高效的过滤系统,能有效处理金属粉尘、木屑、油污等多种工业废弃…

2025年食品包装盒清废机制造厂权威推荐榜单:化妆品盒清废机/药盒清废机/礼盒自动清废机源头厂家精选

在现代化包装印刷生产中,一台高效的全自动清废机每小时可处理多达3000张模切后的纸板,成为提升印后效率的关键装备。 食品包装盒清废机作为印后加工的核心设备,其性能直接关系到生产效率和产品质量。当前,自动化、…

2025瓷砖行业十大品牌终极推荐:聚焦耐磨防污核心性能,搭配全周期服务,打造省心装修体验

2025瓷砖行业十大品牌终极推荐:聚焦耐磨防污核心性能,搭配全周期服务,打造省心装修体验 瓷砖作为装修中的“耐用型主材”,其耐磨度直接关系使用年限,防污性影响日常打理成本,而完善的服务保障能有效规避装修踩坑…

AI学习全景图:从大模型到RAG,从工具到变现,一条从0到1的路线

过去自己为了学习AI,疯狂的收集工具、看各种教程,收藏、点赞不停,但是发现对于真正的理解AI,AI能做什么,它的底层逻辑是什么,发展历程是什么,完全不清楚。 碎片化的学习不仅不能够让我们真正实现知识的整理,反…

洛谷 B4415:[GESP202509 四级] 排兵布阵 ← 暴力枚举法

​【题目来源】https://www.luogu.com.cn/problem/B4415【题目描述】作为将军,你自然需要合理地排兵布阵。地图可以视为 n 行 m 列的网格,适合排兵的网格以 1 标注,不适合排兵的网格以 0 标注。现在你需要在地图上选…

全球化仓储软件(WMS)哪家好?国内主流服务商盘点

随着跨境贸易和全球供应链的深度融合,企业对仓储管理的需求已从单一仓库运营转向全球化协同。全球化仓储软件(WMS)作为连接多区域仓库、多语言系统、多物流节点的核心工具,其稳定性、兼容性及国际化适配能力成为企…