vue定时器问题(单个定时器和循环定时器)

vue定时器问题(单个定时器和循环定时器)有两种情况 一 单个定时器 比如发送验证码后 显示倒计时 60 秒二 在循环中创建多个定时器 比如美团未支付页面有多个订单 都是从下单时间开始倒计时 15 分钟第二个情况有点复杂 弄了很久 算是踩坑了 一 单个定时器 比如发送验证码后 显示倒计时 60 秒 html divclass input item spanclass des 验证码 spanclass des divclass input item

 <div class="input-item"> <span class="des">验证码</span> <input class="input" placeholder="填写验证码" id="validateCode" /> <a href="javascript:void(0)" v-on:click="GetverificationCode">{ 
   { 
   count}}</a> </div> 

js

 data: { 
    count: "获取验证码", timer: null,//关键 }, methods:{ 
    //获取验证码 GetverificationCode: function (e) { 
    let that = this; $.ajax({ 
    url: "/OrderMeal/SendVerificateCode", data: { 
    phone: $("#phone").val() }, success: function (data) { 
    if (data.isSuccess == false) { 
    $.toptip('系统繁忙,请稍后再试', 'warning'); return; } const TIME_COUNT = 60;//设置60秒 if (!that.timer) { 
    that.count = TIME_COUNT; that.show = false; that.timer = setInterval(() => { 
    if (that.count > 0 && that.count <= TIME_COUNT) { 
    that.count--; } else { 
    clearInterval(that.timer); that.timer = null; that.count = "重新获取"; } }, 1000) } } }) }, }, 

二、在循环中创建多个定时器,比如美团未支付页面有多个订单,都是从下单时间开始倒计时15分钟

for (var i = 0; i < that.orderList.length; i++) { 
    let j = i;//重点 (function (j) { 
   //重点,跟循环打印一个道理,否则得到的的是最后一个,而不是每一个值都有 that.orderList[j].timer = null;//重点 var startTime = new Date().getTime(); var endTime = Date.parse(that.orderList[j].orderTime);//下单时间换算成毫秒 endTime += //加30分钟(倒计时三十分钟) var leftTime = endTime - startTime;//下单后的30分钟-现在的时间 if (!that.orderList[j].timer) { 
    that.orderList[j].timer = setInterval(() => { 
    if (leftTime > 0) { 
    leftTime = leftTime - 1000 var m = Math.floor(leftTime / 1000 / 60 % 60); var s = Math.floor(leftTime / 1000 % 60); that.$set(that.orderList[j], "Min", m)//上一篇有讲,给数组对象加新属性 that.$set(that.orderList[j], "Sec", s) //console.log(that.orderList[j].Min, s) } else { 
    clearInterval(that.orderList[j].timer); that.orderList[j].timer = null; } }, 1000) } })(j) } 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/232430.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 大数据可视化方法有哪些「建议收藏」

    大数据可视化方法有哪些「建议收藏」  随着计算机技术、物联网技术和现代智能终端技术的发展,大数据时代已经到来。大到企业、政府、媒体部门,小到个人,每天都在进行”读读”。各种各样的复杂数据和信息充斥着人们的眼球。这就需要一种有效的方法从海量信息中提取有用的信息,并能立即产生一定的相关结果,供决策者做出正确的决策。  数据可视化技术是指可视化技术在大数据方面的应用,将数据信息转化为视觉形式的过程,以此增强数据呈现的效果。用户…

    2022年6月3日
    38
  • android 学生模式,(续上篇)多亲AI助手——学生模式体验小记

    android 学生模式,(续上篇)多亲AI助手——学生模式体验小记(续上篇)多亲AI助手——学生模式体验小记2019-08-1811:02:5617点赞9收藏14评论朋友的多亲2,是过了好几手的。哦,原来不是他的,那上次半推半就借给我,是几个意思?寄走前,他允许我再摸摸。正好,本人还有几个疑问,需要验证。本篇体验,以问答形式撰写,没有废话,都是干货。网红遥控器值不值得买——多亲AI助手体验小记由来“多亲AI助手”到手,来自一位朋友,过两天还要还回去,并非全新,…

    2022年6月10日
    156
  • 免费的mysql可视化工具_centos7安装oracle

    免费的mysql可视化工具_centos7安装oracle以前安装过几十次的mysql。今天还是遇到问题(虽然是因为是局域网ip不通无法远程连接),记录一个完整的安装过程。1.yum卸载yum安装之后如果需要卸载1.命令rpm-qa|grep-imysql或者yumlistinstalled|grepmysql查看安装的mysql安装包将查出来的安装包通过yumremove卸载yumremovemysql-comm…

    2022年9月23日
    5
  • UML教程_css餐厅游戏答案

    UML教程_css餐厅游戏答案 UML教程

    2025年8月6日
    4
  • phpstorm2021 激活码【永久激活】

    (phpstorm2021 激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlML…

    2022年3月21日
    155
  • java自定义注解枚举_java_自定义注解「建议收藏」

    1注解的定义和用途1.1官方描述Anannotationisaformofmetadata,thatcanbeaddedtoJavasourcecode.Classes,methods,variables,parametersandpackagesmaybeannotated.Annotationshavenodirecteffecton…

    2022年4月13日
    47

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号