最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

怎样实现短信验证优化

来源:动视网 责编:小采 时间:2020-11-27 19:40:35
文档

怎样实现短信验证优化

怎样实现短信验证优化:这次给大家带来怎样实现短信验证优化,实现短信验证优化的注意事项有哪些,下面就是实战案例,一起来看一下。平时我们在项目中进行注册等的时候,会经常用到短信验证的功能,但是现在现在很多短信验证都是存在下面几个问题,例如短信验证时间为60s的时候,1.
推荐度:
导读怎样实现短信验证优化:这次给大家带来怎样实现短信验证优化,实现短信验证优化的注意事项有哪些,下面就是实战案例,一起来看一下。平时我们在项目中进行注册等的时候,会经常用到短信验证的功能,但是现在现在很多短信验证都是存在下面几个问题,例如短信验证时间为60s的时候,1.


这次给大家带来怎样实现短信验证优化,实现短信验证优化的注意事项有哪些,下面就是实战案例,一起来看一下。

平时我们在项目中进行注册等的时候,会经常用到短信验证的功能,但是现在现在很多短信验证都是存在下面几个问题,例如短信验证时间为60s的时候,

1. 当点击完按钮时,倒计时还没到60s过完时,刷新浏览器,验证码按钮又可以重新点击

2.当点击按钮倒计时开始,例如在50s的时候我关闭了浏览器,过了5s后,我在打开,此时时间倒计时的时间应该是45s左右,但是当重新打开浏览器的时候,按钮又可以重新点击了

为了解决上面的两个问题,就需要把时间都写到localstorage里面去,当打开页面的时候,就去localstorage里面去取,我这里就贴上我的解决方法,因为前几天有个vue的项目用到该方法,所以我这里就写个vue的方法出来吧

组件里面的html代码:

<p class="mtui-cell__ft" @click="getCode">
 <button class="mtui-vcode-btn mtui-text-center" v-if="flag">获取短信</button>
 <button class="mtui-vcode-btn mtui-text-center" v-if="!flag">剩余{{second}}s</button>
</p>

重点来啦

在data里面定义几个需要用到的变量:

 second: 60,
 flag: true,
 timer: null // 该变量是用来记录定时器的,防止点击的时候触发多个setInterval

获取短信验证的方法:

getCode() {
 let that = this;
 if (that.flag) {
 that.flag = false;
 let interval = window.setInterval(function() {
 that.setStorage(that.second);
 if (that.second-- <= 0) {
 that.second = 60;
 that.flag = true;
 window.clearInterval(interval);
 }
 }, 1000);
 }
 }

写入和读取localstorage:

     setStorage(parm) {
 localStorage.setItem("dalay", parm);
 localStorage.setItem("_time", new Date().getTime());
 },
 getStorage() {
 let localDelay = {};
 localDelay.delay = localStorage.getItem("dalay");
 localDelay.sec = localStorage.getItem("_time");
 return localDelay;
 }

防止页面刷新是验证码失效:

judgeCode() {
 let that = this;
 let localDelay = that.getStorage();
 let secTime = parseInt(
 (new Date().getTime() - localDelay.sec) / 1000
 );
 console.log(localDelay);
 if (secTime > localDelay.delay) {
 that.flag = true;
 console.log("已过期");
 } else {
 that.flag = false;
 let _delay = localDelay.delay - secTime;
 that.second = _delay;
 that.timer = setInterval(function() {
 if (_delay > 1) {
 _delay--;
 that.setStorage(_delay);
 that.second = _delay;
 that.flag = false;
 } else {
             
              // 此处赋值时为了让浏览器打开的时候,直接就显示剩余的时间
 that.flag = true;
 window.clearInterval(that.timer);
 }
 }, 1000);
 }
 }

相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

推荐阅读:

如何使用vuex操作state对象

怎样使用node做出个人号机器人

文档

怎样实现短信验证优化

怎样实现短信验证优化:这次给大家带来怎样实现短信验证优化,实现短信验证优化的注意事项有哪些,下面就是实战案例,一起来看一下。平时我们在项目中进行注册等的时候,会经常用到短信验证的功能,但是现在现在很多短信验证都是存在下面几个问题,例如短信验证时间为60s的时候,1.
推荐度:
标签: 短信 验证 实现
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top