js 解決在Vue中阻止重復提交、多次觸發、節流函數、防止短時間多次觸發問題


定義節流函數,我這里是在Vue中使用的

  function throttle(fn, delay) {
        var lastTime;
        var timer;
        var delay = delay || 200;
        return function () {
            var args = arguments;
            // 記錄當前函數觸發的時間
            var nowTime = Date.now();
            clearTimeout(timer);
            timer = setTimeout(function () {
                // 記錄上一次函數觸發的時間
                lastTime = nowTime;
                // 修正this指向問題
                fn.apply(this, args);
            }, delay)
        }
    };

在methos中方法中調用,我這里是阻止change多次觸發問題

   checkChange: throttle(function (data, checked, childCked) {
                var self = this;
                var dictionaryViewVue = self.dictionaryViewVue;
                dictionaryViewVue.modelIds = dictionaryViewVue.$refs.refTree.getCheckedKeys();
                if (dictionaryViewVue.cardType == 'example') {
                    dictionaryViewVue.getEampleData();//解決重復發送請求
                } else {
                    dictionaryViewVue.getIndexData();//解決重復發送請求
                }
            }, 50),


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM