首页 >社区问答列表 >javascript - 原生JS实现发送验证码计秒

javascript - 原生JS实现发送验证码计秒

  1. 现在有个问题就如题所示,我想有一个登录页面,但是是基于遥控器的。绑定手机时需要向手机发送验证码,随后按钮的label就要随着时间减少 60s 50s ... 0s 等 在计秒的过程中,我可能还会上下左右操作。

  2. 问题是这样,稍微了解了下 js 是单线程运行 我计秒这个 动作 和我计秒的同时进行上下左右切换焦点并行,在我理解是2个线程操作。所以 小弟不得其解,怎么去实现呢? 求高人指点。

  • 我想大声告诉你
  • 我想大声告诉你    2017-07-05 10:46:003楼

    开一个 setInterval 跑完60秒自动解除button的disabled

    跑的过程中时间累减

    比如

    
    //伪代码、思路是这样
    var i = 60;
    var interval;
    interval = setInterval(function(){
        document.getElementById("testBtn").innerHTML(i+'s')
        i = i-1
        if(i<=0){
            clearInterval(interval)
            //解除你的btn不可点击
        }
    },1000)

    +0添加回复

  • 回复
  • 淡淡烟草味
  • 淡淡烟草味    2017-07-05 10:46:002楼

    定时器是异步执行的,定时是由另一个工作线程来完成的,对主线程不会有影响。当定时器时间到达后,会把要执行的回调函数放到任务队列里,并由主线程来调用回调函数。

    所以在主线程上的操作不会影响定时器。

    +0添加回复

  • 回复