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

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

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

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

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

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

為了解決上面的兩個問題,就需要把時間都寫到localstorage里面去,當(dāng)打開頁面的時候,就去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)該功能了

總結(jié)

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    vue打包添加gzip配置項方式

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

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

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

最新評論

旬阳县| 腾冲县| 廉江市| 高雄市| 赤城县| 台州市| 鹤峰县| 无极县| 神池县| 宁强县| 宝清县| 兴和县| 湾仔区| 车险| 祁连县| 错那县| 崇文区| 西宁市| 沾化县| 大宁县| 普格县| 长岭县| 大方县| 临沭县| 怀柔区| 新宁县| 格尔木市| 安多县| 察雅县| 乌审旗| 谷城县| 宁陕县| 锡林郭勒盟| 伊吾县| 大宁县| 武宁县| 吴忠市| 怀仁县| 仙居县| 上饶县| 陇川县|