news 2026/4/22 21:07:04

Axios网络请求优化(缓存)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Axios网络请求优化(缓存)

合理使用缓存,避免重复请求

// 通过缓存机制,存储已经发出的请求结果,如果同样的请求再次发起, // 直接从缓存中获取数据,而不是重新发请求。 import axios from "axios"; // 缓存对象 const cache = new Map<string, any>(); // 封装带缓存的请求函数 async function axiosWithCache(url: string): Promise<any> { if (cache.has(url)) { console.log(`从缓存中获取数据: ${url}`); return cache.get(url); } console.log(`发送网络请求: ${url}`); const response = await axios.get(url); // 将结果存入缓存 cache.set(url, response.data); return response.data; } // 使用示例 (async () => { const url = "https://jsonplaceholder.typicode.com/todos/1"; const result1 = await axiosWithCache(url); // 第一次请求 console.log(result1); const result2 = await axiosWithCache(url); // 从缓存获取 console.log(result2); })();

使用 abortController 取消不再需要的请求。

// 当用户离开页面或切换视图时,取消掉未完成的请求以节省资源。 // 封装请求函数,支持 AbortController import axios from "axios"; // 封装带取消功能的请求函数 async function axiosWithAbort(url: string, controller: AbortController): Promise<any> { try { const response = await axios.get(url, { signal: controller.signal, // 绑定 AbortController 的 signal }); return response.data; } catch (error: any) { if (axios.isCancel(error)) { console.log(`请求已取消: ${url}`); } else { console.error("请求失败", error); } throw error; } } // 使用示例 (async () => { const controller = new AbortController(); const url = "https://jsonplaceholder.typicode.com/todos/1"; // 模拟请求 const fetchPromise = axiosWithAbort(url, controller); // 模拟用户取消请求 setTimeout(() => { controller.abort(); // 取消请求 }, 100); try { const result = await fetchPromise; console.log(result); } catch (error) { console.log("请求未完成,已被取消"); } })();
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/19 23:02:03

Windows DLL注入神器Xenos:零基础快速上手完整指南

想要为运行中的Windows程序动态扩展功能&#xff0c;却苦于无从下手&#xff1f;Xenos作为一款专业的DLL注入工具&#xff0c;让你能够像给系统安装驱动程序一样&#xff0c;轻松实现功能模块的热插拔。无论是游戏插件开发、软件调试还是逆向工程研究&#xff0c;这款工具都能成…

作者头像 李华
网站建设 2026/4/20 22:56:58

四旋翼飞行器及电机动力学研究附Matlab代码、Simulink仿真

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f34a;个人信条&#xff1a;格物致知,完整Matlab代码及仿真咨询…

作者头像 李华
网站建设 2026/4/22 5:23:55

稀疏感知图像和体数据恢复的系统对象研究附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f34a;个人信条&#xff1a;格物致知,完整Matlab代码及仿真咨询…

作者头像 李华
网站建设 2026/4/20 7:40:09

为什么开发者都在用LobeChat作为本地大模型前端?

为什么开发者都在用LobeChat作为本地大模型前端&#xff1f; 在大语言模型&#xff08;LLM&#xff09;已经“飞入寻常百姓家”的今天&#xff0c;真正的挑战早已不再是“有没有模型可用”&#xff0c;而是——如何让这些强大的模型真正为我所用&#xff1f; 我们见过太多这样的…

作者头像 李华
网站建设 2026/4/21 16:15:38

REST API调用大模型时LobeChat的封装逻辑

LobeChat 如何优雅封装大模型 REST API 调用 在今天&#xff0c;几乎每个开发者都接触过大语言模型&#xff08;LLM&#xff09;——无论是通过 OpenAI 的 ChatGPT&#xff0c;还是阿里云的通义千问、百度的文心一言。但当你真正想把这些能力集成到自己的系统中时&#xff0c;问…

作者头像 李华