vue实现每隔几秒请求一次接口(轮询)
单纯使用setInterval会使页面卡死,setTimeout自带清除缓存,组合使用实现轮询可解决浏览器崩溃
1 2 3 4 | //30秒调用一次fun 方法 window.setInterval(() => { setTimeout(fun, 0) }, 30000) |
如下方法:
data() { return { times: null, }; }, created() { this.getDataFun(); // 实现轮询 this.times = setInterval(() => { this.getDataFun(); }, 1000 * 60); }, methods: { getDataFun() { //请求XXXXXX }, stop() { clearInterval(this.timer); this.timer = null; }, } , destroyed() { //销毁 clearInterval(this.times); this.timer = null; },
接下来写一个案例:
created() { // 实现轮询 this.autoGetNotHandleData(); }, methods: { destroyed() { //销毁 clearInterval(this.times); this.timer = null; }, autoGetNotHandleData(){ // 实现轮询 this.times = setInterval(() => { if(this.dataSource && this.dataSource.length>0){ this.onSelectChange([this.dataSource[0].businessUnitCode], [this.dataSource[0]]); this.destroyed() } }, 500); }, }
每天学习一点点,你就进步一点点。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
2016-05-10 struts2中的jsp值传到后台action接收的三种方法
2016-05-10 mysql时间格式化,按时间段查询的MySQL语句
2016-05-10 复选框做成单选效果
2016-05-10 SSH整合报错:org.hibernate.hql.internal.ast.QuerySyntaxException: User is not mapped[......]