博客
关于我
js中两种定时器,setTimeout和setInterval实现验证码发送
阅读量:376 次
发布时间:2019-03-05

本文共 1814 字,大约阅读时间需要 6 分钟。

1、setInterval实现

页面加载时自动执行以下脚本:

$(function(){ /************************获取验证码点击事件********************************/ $("#validCode").click(function(){ calTime(); timer = window.setInterval(calTime,1000); }); }); var time = 6; function calTime(){ if(time>0){ $("#validCode").val("("+time+"s)后重发"); $("#validCode").prop("disabled",true); time--; }else{ window.clearInterval(timer); $("#validCode").val("点击重发"); $("#validCode").prop("disabled",false); time = 6; return; } }

该实现通过setInterval函数在页面加载时自动执行,设置了一个定时任务:

每隔1000毫秒调用calTime函数,用于处理验证码发送计时逻辑:

具体实现逻辑如下:

var time = 6; //初始时间设置为6秒 function calTime(){ if(time>0){ //如果时间大于0,显示剩余秒数并禁用按钮 $("#validCode").val("("+time+"s)后重发"); $("#validCode").prop("disabled",true); time--; }else{ //否则清除定时任务,恢复按钮状态 window.clearInterval(timer); $("#validCode").val("点击重发"); $("#validCode").prop("disabled",false); time = 6; return; }

该实现的优点是:

  • 支持多次自动重发
  • 定时任务不会被浏览器中断
  • 页面刷新后自动重新发送

2、setTimeout实现

页面加载时自动执行以下脚本:

$(function(){ /************************获取验证码点击事件********************************/ $("#validCode").click(function(){ calTime(); }); }); var time = 6; function calTime(){ if(time>0){ $("#validCode").val("("+time+"s)后重发"); $("#validCode").prop("disabled",true); time--; }else{ $("#validCode").val("点击重发"); $("#validCode").prop("disabled",false); time = 6; return; } window.setTimeout(calTime,1000); }

该实现通过setTimeout函数在页面加载时自动执行,设置了一个单次定时任务:

每隔1000毫秒调用calTime函数,用于处理验证码发送计时逻辑:

具体实现逻辑如下:

var time = 6; //初始时间设置为6秒 function calTime(){ if(time>0){ //如果时间大于0,显示剩余秒数并禁用按钮 $("#validCode").val("("+time+"s)后重发"); $("#validCode").prop("disabled",true); time--; }else{ //否则清除定时任务,恢复按钮状态 $("#validCode").val("点击重发"); $("#validCode").prop("disabled",false); time = 6; return; } //window.setTimeout("calTime()",1000); window.setTimeout(calTime,1000); }

该实现的优点是:

  • 支持多次自动重发
  • 定时任务不会被浏览器中断
  • 页面刷新后自动重新发送

转载地址:http://syqwz.baihongyu.com/

你可能感兴趣的文章
layui表格checkbox选择全选样式及功能
查看>>
mxsrvs支持thinkphp3.2伪静态
查看>>
mui HTML5 plus 下载文件
查看>>
环信SDK 踩坑记webIM篇(一)
查看>>
通信基础知识
查看>>
DSP开发板准备
查看>>
测试基本
查看>>
c++中istringstream及ostringstream超详细说明
查看>>
c++中ifstream及ofstream超详细说明
查看>>
c++中explicit和mutable关键字探究
查看>>
c语言结构体字节对齐详解
查看>>
linux c/c++面试知识点整理(八)
查看>>
linux网络编程系列(十二)--滑动窗口、拥塞控制、断线重连机制
查看>>
Deep residual learning for image recognition
查看>>
IO控制方式
查看>>
IO控制器
查看>>
LeetCode122.买卖股票的最佳时机2Golang版
查看>>
Java 知识点总结篇(2)
查看>>
Python 知识点总结篇(2)
查看>>
Python 知识点总结篇(3)
查看>>