最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue短信驗(yàn)證性能優(yōu)化如何寫入localstorage中

 更新時(shí)間:2018年04月25日 08:37:29   作者:Cynthia-milk  
這篇文章主要介紹了vue短信驗(yàn)證性能優(yōu)化寫入localstorage中的方法,解決這個(gè)問題需要把時(shí)間都寫到localstorage里面去,具體解決方法大家參考下本文

平時(shí)我們?cè)陧?xiàng)目中進(jìn)行注冊(cè)等的時(shí)候,會(huì)經(jīng)常用到短信驗(yàn)證的功能,但是現(xiàn)在現(xiàn)在很多短信驗(yàn)證都是存在下面幾個(gè)問題,例如短信驗(yàn)證時(shí)間為60s的時(shí)候,

1. 當(dāng)點(diǎn)擊完按鈕時(shí),倒計(jì)時(shí)還沒到60s過完時(shí),刷新瀏覽器,驗(yàn)證碼按鈕又可以重新點(diǎn)擊

2.當(dāng)點(diǎn)擊按鈕倒計(jì)時(shí)開始,例如在50s的時(shí)候我關(guān)閉了瀏覽器,過了5s后,我在打開,此時(shí)時(shí)間倒計(jì)時(shí)的時(shí)間應(yīng)該是45s左右,但是當(dāng)重新打開瀏覽器的時(shí)候,按鈕又可以重新點(diǎn)擊了

為了解決上面的兩個(gè)問題,就需要把時(shí)間都寫到localstorage里面去,當(dāng)打開頁面的時(shí)候,就去localstorage里面去取,我這里就貼上我的解決方法,因?yàn)榍皫滋煊袀€(gè)vue的項(xiàng)目用到該方法,所以我這里就寫個(gè)vue的方法出來吧

組件里面的html代碼:

<div 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>
</div>

重點(diǎn)來啦

在data里面定義幾個(gè)需要用到的變量:

 second: 60,
 flag: true,
 timer: null // 該變量是用來記錄定時(shí)器的,防止點(diǎn)擊的時(shí)候觸發(fā)多個(gè)setInterval

獲取短信驗(yàn)證的方法:

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;
  }

防止頁面刷新是驗(yàn)證碼失效:

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 {
             
              // 此處賦值時(shí)為了讓瀏覽器打開的時(shí)候,直接就顯示剩余的時(shí)間
      that.flag = true;
      window.clearInterval(that.timer);
     }
    }, 1000);
   }
  }

然后在html掛載頁面完成后的生命鉤子(mounted)中調(diào)用judgeCode()方法就能實(shí)現(xiàn)該功能了

總結(jié)

以上所述是小編給大家介紹的vue短信驗(yàn)證性能優(yōu)化如何寫入localstorage中,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 淺談VUE-CLI腳手架熱更新太慢的原因和解決方法

    淺談VUE-CLI腳手架熱更新太慢的原因和解決方法

    今天小編就為大家分享一篇淺談VUE-CLI腳手架熱更新太慢的原因和解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • 在vue中created、mounted等方法使用小結(jié)

    在vue中created、mounted等方法使用小結(jié)

    這篇文章主要介紹了在vue中created、mounted等方法使用小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • elementUI動(dòng)態(tài)嵌套el-form表單校驗(yàn)舉例詳解

    elementUI動(dòng)態(tài)嵌套el-form表單校驗(yàn)舉例詳解

    最近工作遇到個(gè)需求,表單可以進(jìn)行增加刪除操作,需要進(jìn)行表單校驗(yàn),這篇文章主要給大家介紹了關(guān)于elementUI動(dòng)態(tài)嵌套el-form表單校驗(yàn)的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • Vue使用js-audio-recorder實(shí)現(xiàn)錄制,播放與下載音頻功能

    Vue使用js-audio-recorder實(shí)現(xiàn)錄制,播放與下載音頻功能

    這篇文章主要為大家詳細(xì)介紹了Vue如何使用js-audio-recorder實(shí)現(xiàn)錄制,播放與下載音頻功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下
    2023-12-12
  • vue el-form-item如何添加icon和tooltip

    vue el-form-item如何添加icon和tooltip

    這篇文章主要介紹了vue el-form-item如何添加icon和tooltip問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • vue+ElementUI 關(guān)閉對(duì)話框清空驗(yàn)證,清除form表單的操作

    vue+ElementUI 關(guān)閉對(duì)話框清空驗(yàn)證,清除form表單的操作

    這篇文章主要介紹了vue+ElementUI 關(guān)閉對(duì)話框清空驗(yàn)證,清除form表單的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • Vue??vuex配置項(xiàng)和多組件數(shù)據(jù)共享案例分享

    Vue??vuex配置項(xiàng)和多組件數(shù)據(jù)共享案例分享

    這篇文章主要介紹了Vue??vuex配置項(xiàng)和多組件數(shù)據(jù)共享案例分享,文章圍繞Vue?Vuex的相關(guān)資料展開配置項(xiàng)和多組件數(shù)據(jù)共享的案例分享,需要的小伙伴可以參考一下
    2022-04-04
  • vue2中使用axios及axios攔截器的配置教程

    vue2中使用axios及axios攔截器的配置教程

    眾所周知Axios是一個(gè)基于promise的HTTP庫(kù),可以用在瀏覽器和 node.js中,下面這篇文章主要給大家介紹了關(guān)于vue2中使用axios及axios攔截器的配置的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • vue打包添加gzip配置項(xiàng)方式

    vue打包添加gzip配置項(xiàng)方式

    這篇文章主要介紹了vue打包添加gzip配置項(xiàng)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Vue3使用v-html實(shí)現(xiàn)文本關(guān)鍵詞變色處理

    Vue3使用v-html實(shí)現(xiàn)文本關(guān)鍵詞變色處理

    遍歷文本內(nèi)容,找到關(guān)鍵詞,并使用某種方法更改其字體樣式,經(jīng)過搜尋資料決定采用v-html實(shí)現(xiàn),但是v-html本身并不安全,有安全性風(fēng)險(xiǎn)且影響性能,所以謹(jǐn)慎使用,本文給大家介紹了Vue3使用v-html實(shí)現(xiàn)文本關(guān)鍵詞變色處理,需要的朋友可以參考下
    2024-06-06

最新評(píng)論

牡丹江市| 大城县| 临武县| 巴马| 玉龙| 安多县| 桂林市| 杭州市| 贵定县| 阳西县| 海盐县| 茶陵县| 漳州市| 临高县| 土默特右旗| 汉沽区| 冷水江市| 江阴市| 平陆县| 南木林县| 太康县| 大关县| 阿合奇县| 平南县| 隆尧县| 漳州市| 苏尼特右旗| 额尔古纳市| 岳普湖县| 榆社县| 阿克陶县| 洞口县| 建始县| 江山市| 千阳县| 普定县| 搜索| 扎囊县| 通辽市| 雅江县| 高淳县|