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

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

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

阅读 3.3k
3 个回答

开一个 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)

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

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

不用关心线程问题 setInterval可以

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题