欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

1. 當點擊完按鈕時,倒計時還沒到60s過完時,刷新瀏覽器,驗證碼按鈕又可以重新點擊

2.當點擊按鈕倒計時開始,例如在50s的時候我關閉了瀏覽器,過了5s后,我在打開,此時時間倒計時的時間應該是45s左右,但是當重新打開瀏覽器的時候,按鈕又可以重新點擊了

為了解決上面的兩個問題,就需要把時間都寫到localstorage里面去,當打開頁面的時候,就去localstorage里面去取,我這里就貼上我的解決方法,因為前幾天有個vue的項目用到該方法,所以我這里就寫個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>

重點來啦

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

 second: 60,
 flag: true,
 timer: null // 該變量是用來記錄定時器的,防止點擊的時候觸發(fā)多個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);
   }
  }

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

總結

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

相關文章

  • Vue 項目中遇到的跨域問題及解決方法(后臺php)

    Vue 項目中遇到的跨域問題及解決方法(后臺php)

    這篇文章主要介紹了Vue 項目中遇到的跨域問題及解決方法(后臺php),前端采用vue框架,后臺php,具體解決方法,大家參考下本文
    2018-03-03
  • vue中遇到的坑之變化檢測問題(數(shù)組相關)

    vue中遇到的坑之變化檢測問題(數(shù)組相關)

    這篇文章主要介紹了vue中遇到的坑之變化檢測問題(數(shù)組相關) ,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • 在Vue2中注冊全局組件的兩種方法詳解

    在Vue2中注冊全局組件的兩種方法詳解

    這篇文章主要介紹了在Vue2中注冊全局組件的兩種方法,非常的細致,需要的朋友可以參考下
    2022-07-07
  • vuex實現(xiàn)購物車功能

    vuex實現(xiàn)購物車功能

    這篇文章主要為大家詳細介紹了vuex實現(xiàn)購物車功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • vue prop傳值類型檢驗方式

    vue prop傳值類型檢驗方式

    這篇文章主要介紹了vue prop傳值類型檢驗方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • 你知道Vue中神奇的$set是如何實現(xiàn)的嗎?

    你知道Vue中神奇的$set是如何實現(xiàn)的嗎?

    在日常開發(fā)中,$set的也是一個非常實用的API。但是我們知其然更要知其所以然,接下來就跟隨小編一起看一下Vue中的$set是如何實現(xiàn)的吧
    2022-12-12
  • vue通過笛卡兒積實現(xiàn)sku庫存配置方式

    vue通過笛卡兒積實現(xiàn)sku庫存配置方式

    這篇文章主要介紹了vue通過笛卡兒積實現(xiàn)sku庫存配置方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Nuxt引入vue-persistedstate以及踩坑記錄

    Nuxt引入vue-persistedstate以及踩坑記錄

    這篇文章主要介紹了Nuxt引入vue-persistedstate以及踩坑記錄,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • 用vue寫一個日歷

    用vue寫一個日歷

    這篇文章主要介紹了如何利用vue寫一個日歷,幫助大家更好的理解和學習vue,感興趣的朋友可以了解下
    2020-11-11
  • 如何手寫一個簡易的 Vuex

    如何手寫一個簡易的 Vuex

    這篇文章主要介紹了如何手寫一個簡易的 Vuex,幫助大家更好的理解和學習vue,感興趣的朋友可以了解下
    2020-10-10

最新評論