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

uni-app 中定时器的使用

学习目标:

学习目标如下所示:

  • uniapp中通过使用uni-app提供的定时器API来实现定时器功能。

学习内容:

内容如下所示:
**uni-app的定时器API分为两种:
1.第一种方式:
setTimeout函数,用于设置一个定时器,在指定时间后执行回调函数;

//示例如下所示:
setTimeout(function() {uni.navigateBack();}, 2000);
  1. 第二种方式:
    setInterval函数,用于设置一个定时器,在指定时间间隔后重复执行回调函数。
//示例如下所示:
let clearInt = setInterval(()=>{this.percent ++;},30)
  1. 第一种方式取消定时器:
    clearTimeout(timeoutID)
//示例如下所示:
onLoad() {if(this.timer) {  clearTimeout(this.timer);  this.timer = null;  }  
}
  1. 第二种方式取消定时器:
    clearInterval(intervalID)
//示例如下所示:if(this.percent === 100){clearInterval(clearInt)//	that.allInventory()}
//示例如下所示:
stopScan() {// 清除定时器clearInterval(this.interval);uni.showToast({title: '关闭扫描成功',})},

**


总结:

知识小结:

  • 1、定时器:setTimeout();//n毫秒后执行一次
    setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式。
    setTimeout 方法接收两个参数,第一个参数为回调函数函数或字符串,第二个参数为触发时间(单位:毫秒)
  • 2、定时器:setInterval();//每隔n秒执行一次
    setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。

setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。

  • 3、清除定时器方法:setTimeout()对应的是 clearTimeout(id);
  • 4、清除定时器方法:setInterval()对应的是 clearInterval(id);
  • 5、尽量不要用setInterval()
  • 原因:
  • (1)setInterval()无视代码错误

setInterval 对自己调用的代码是否报错这件事漠不关心。如果setInterval执行的代码由于某种原因出了错,它还会持续不断地调用该代码。

  • (2)setInterval无视网络延迟

如果每隔一段时间就通过Ajax轮询一次服务器,看看有没有新数据(注意:使用“补偿性轮询”(backoff polling)更好)。单实际使用中会由于某些原因(服务器过载、临时断网、流量剧增、用户带宽受限,等等),请求要花的时间远比你想象的要长。
但 setInterval 仍然会按定时持续不断地触发请求,最终客户端网络队列会塞满Ajax调用。

  • (3)setInterval不保证执行

某些调用会被直接忽略 ,与setTimeout不同,你并不能保证到了时间间隔,代码就准能执行。

  • 6**、settimeout和setinterval区别**

setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式,即setTimeout()只执行一次
setInterval()则可以在每隔指定的毫秒数循环调用函数或表达式,直到clearInterval把它清除。即setInterval()可以执行多次。

  • 7、相同点
    两个函数的参数相同,第一个参数是要执行的code或句柄,第二个是延迟的毫秒数。

  • 8、业务场景的区别、使用场景
    (1)setTimeout用于延迟执行某方法或功能。

(2)setInterval则一般用于刷新表单,对于一些表单的假实时指定时间刷新同步。

http://www.lryc.cn/news/97479.html

相关文章:

  • 基于物联网、视频监控与AI视觉技术的智慧电厂项目智能化改造方案
  • 内网穿透远程查看内网监控摄像头
  • 【Flume 01】Flume简介、部署、组件
  • 三款即时通讯工具推荐:J2L3x、Telegram、WhatsApp 你选哪个?
  • C++ 单例模式(介绍+实现)
  • uniapp项目集成本地插件
  • MFC CList 类的使用
  • iptable防火墙
  • 二、SQL-5.DQL-9).执行顺序
  • Ubuntu通用镜像加速配置
  • Linux安装部署Nacos和sentinel
  • Vue3+ElementPlus+TS实现右上角消息数量实时更新
  • 去除重复字母(力扣)贪心 + 队列 JAVA
  • Spring,SpringBoot,Spring MVC的区别是什么
  • 在CSDN学Golang云原生(Docker镜像)
  • Hive窗口函数大全
  • 达闼面试(部分)(未完全解析)
  • Makefile常用函数
  • mysql的一些知识整理
  • 修改密码和再次确认密码的js和element-ui的使用
  • 蓝桥杯专题-真题版含答案-【垒骰子_动态规划】【抽签】【平方怪圈】【凑算式】
  • kubernetes调试利器——kubectl debug工具
  • 浅谈es5如何保证并发请求的返回顺序
  • 深入浅出Pytorch函数——torch.squeeze
  • 【LeetCode】121.买卖股票的最佳时机
  • 【力扣】74. 搜索二维矩阵 <二分法>
  • Spring Task+Cron表达式
  • 你们公司的【前端项目】是如何做测试的?字节10年测试经验的我这样做的...
  • 华为战略方法论:BLM模型之关键任务与依赖关系
  • django的ORM模板的fake更新