国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

微信小程序全局封裝防抖節(jié)流函數(shù)

這篇具有很好參考價(jià)值的文章主要介紹了微信小程序全局封裝防抖節(jié)流函數(shù)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

什么是防抖節(jié)流?

  • 防抖:?簡(jiǎn)單來(lái)說(shuō)就是指觸發(fā)事件后在?n?秒內(nèi)函數(shù)只能執(zhí)行一次(輸入框搜索自動(dòng)補(bǔ)全事件、頻繁點(diǎn)贊和取消點(diǎn)贊、提交事件等等)
  • 節(jié)流:?簡(jiǎn)單來(lái)說(shuō)就是指連續(xù)觸發(fā)事件但是在?n?秒中只執(zhí)行一次函數(shù)(發(fā)送驗(yàn)證碼、表單驗(yàn)證、鼠標(biāo)移動(dòng)事件等等)

小程序中使用?

封裝文件 throttle.js(路徑:/utils/throttle.js

/* 節(jié)流函數(shù)封裝 */
function throttle(fn, gapTime) {
    if (gapTime == null || gapTime == undefined) {
        gapTime = 1500
    }
    let _lastTime = null
    // 返回新的函數(shù)
    return function () {
        let _nowTime = +new Date()
        if (_nowTime - _lastTime > gapTime || !_lastTime) {
            fn.apply(this, arguments) //將this和參數(shù)傳給原函數(shù)
            _lastTime = _nowTime
        }
    }
}
/* 防抖函數(shù)封裝 */
function debounce(fn, interval) {
    let timer;
    let delay = interval || 1000; // 間隔的時(shí)間,如果interval不傳,則默認(rèn)1秒
    return function () {
        let that = this;
        let args = arguments; // 保存此處的arguments,因?yàn)閟etTimeout是全局的,arguments不是防抖函數(shù)需要的。
        if (timer) {
            clearTimeout(timer);
        }
        timer = setTimeout(function () {
            fn.apply(that, args); // 用apply指向調(diào)用debounce的對(duì)象,相當(dāng)于this.fn(args);
        }, delay);
    };
}
// 將寫好的方法拋出
module.exports = {
    throttle,
    debounce
}

?使用的文件 home.wxml(路徑:pages/home/home.wxml

<button bindtap="formSubmit">點(diǎn)擊觸發(fā)事件</button>

?使用的文件 home.js(路徑:pages/home/home.js

- 防抖函數(shù):

// 引入封裝文件
var util = require('../../utils/throttle');
Page({
    data: {},
     // 調(diào)用防抖函數(shù)(觸發(fā)事件后在1秒內(nèi)函數(shù)只能執(zhí)行一次)
     formSubmit: util.debounce(function () {
         console.log("'防抖函數(shù)'")
     }, 1000),
})

?

防抖函數(shù)實(shí)現(xiàn)效果

可以看到我們從一開始就瘋狂點(diǎn)擊,但是都沒(méi)有觸發(fā)打印,只有我們停下來(lái)后,才會(huì)觸發(fā)最后一次點(diǎn)擊事件。

微信小程序全局封裝防抖節(jié)流函數(shù),微信小程序,微信小程序,小程序

- 節(jié)流函數(shù):

// 引入封裝文件
var util = require('../../utils/throttle');
Page({
    data: {},
    // 調(diào)用節(jié)流函數(shù)(首次點(diǎn)擊后觸發(fā)打印,3秒內(nèi)點(diǎn)擊按鈕都不會(huì)觸發(fā),3秒后再次點(diǎn)擊觸發(fā))
    formSubmit: util.throttle(function (e) {
        console.log('節(jié)流函數(shù)');
    }, 3000),
})

節(jié)流函數(shù)實(shí)現(xiàn)效果

可以看到在我們第一次點(diǎn)擊事件后,觸發(fā)了打印,但當(dāng)我們?cè)?秒內(nèi)又點(diǎn)擊了幾次都沒(méi)有觸發(fā)打印,3秒后再次點(diǎn)擊才會(huì)觸發(fā)。

微信小程序全局封裝防抖節(jié)流函數(shù),微信小程序,微信小程序,小程序文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-824211.html

到了這里,關(guān)于微信小程序全局封裝防抖節(jié)流函數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 微信小程序創(chuàng)建自定義全局函數(shù)及其調(diào)用方法

    微信小程序創(chuàng)建自定義全局函數(shù)及其調(diào)用方法

    一:創(chuàng)建小程序全局函數(shù) 1:在微信開發(fā)工具中增加一個(gè)JS文檔, 放入全局全局函數(shù) 代碼說(shuō)明 1:全局函數(shù)只能放var定義的變量下,本例的var 變量為myFunction 格式為: var myFunction={ 在這里編寫你的全局函數(shù) } 你可以把myFunction理解為一個(gè)類,你的全局函數(shù)理解放類中的一個(gè)方法

    2024年02月09日
    瀏覽(23)
  • 手寫一個(gè)防抖節(jié)流函數(shù)及其使用場(chǎng)景

    ? 防抖和節(jié)流是性能優(yōu)化手段 什么是防抖? 防抖:?jiǎn)挝粫r(shí)間內(nèi),頻繁觸發(fā)事件,只執(zhí)行最后一次。 防抖的主要應(yīng)用場(chǎng)景: 搜索框搜索輸入。只需用戶最后一次輸入完,再發(fā)送請(qǐng)求 手機(jī)號(hào)、郵箱驗(yàn)證輸入檢測(cè) 什么是節(jié)流? 節(jié)流:?jiǎn)挝粫r(shí)間內(nèi),頻繁觸發(fā)事件,只執(zhí)行一次。

    2024年02月09日
    瀏覽(19)
  • 記錄--閉包,沙箱,防抖節(jié)流,函數(shù)柯里化,數(shù)據(jù)劫持......

    記錄--閉包,沙箱,防抖節(jié)流,函數(shù)柯里化,數(shù)據(jù)劫持......

    函數(shù)定義階段 在堆內(nèi)存中開辟一段空間 把函數(shù)體內(nèi)的代碼一模一樣的存儲(chǔ)在這段空間內(nèi) 把空間賦值給棧內(nèi)存的變量中 函數(shù)調(diào)用階段 按照變量名內(nèi)的存儲(chǔ)地址找到堆內(nèi)存中對(duì)應(yīng)的存儲(chǔ)空間 在調(diào)用棧中開辟一個(gè)新的函數(shù)執(zhí)行空間 在執(zhí)行空間中進(jìn)行形參賦值 在執(zhí)行空間中進(jìn)行

    2024年02月05日
    瀏覽(24)
  • uni-app vue3 封裝socket 兼容微信小程序 釘釘小程序 H5 App 全局唯一

    前端小伙伴使用uni-app開發(fā)長(zhǎng)連接通信的時(shí)候都會(huì)有以下疑問(wèn) 在網(wǎng)上搜到的封裝socket都沒(méi)講怎么全局公用一個(gè)呢? 同一個(gè) 子協(xié)議或者我我們叫type類型型我想在兩個(gè)頁(yè)面都接受使用怎么做呢? 目前能搜到的socket 封裝好像都沒(méi)講清楚這個(gè)東西,或者壓根沒(méi)考慮 下面給大家詳細(xì)

    2024年02月13日
    瀏覽(98)
  • JS手寫防抖和節(jié)流函數(shù)(超詳細(xì)版整理)

    JS手寫防抖和節(jié)流函數(shù)(超詳細(xì)版整理)

    防抖(debounce) :每次觸發(fā)定時(shí)器后,取消上一個(gè)定時(shí)器,然后重新觸發(fā)定時(shí)器。防抖 一般用于用戶未知行為的優(yōu)化 ,比如搜索框輸入彈窗提示,因?yàn)橛脩艚酉聛?lái)要輸入的內(nèi)容都是未知的,所以每次用戶輸入就彈窗是沒(méi)有意義的,需要等到用戶輸入完畢后再進(jìn)行彈窗提示。

    2024年02月04日
    瀏覽(20)
  • vue項(xiàng)目使用lodash節(jié)流防抖函數(shù)問(wèn)題與解決

    vue項(xiàng)目使用lodash節(jié)流防抖函數(shù)問(wèn)題與解決

    在lodash函數(shù)工具庫(kù)中,防抖 _.debounce 和節(jié)流 _.throttle 函數(shù)在一些頻繁觸發(fā)的事件中比較常用。 創(chuàng)建一個(gè) debounced(防抖動(dòng))函數(shù),該函數(shù)會(huì)從上一次被調(diào)用后,延遲? wait ?毫秒后調(diào)用? func ?方法。 參數(shù) func ? (Function) : 要防抖動(dòng)的函數(shù)。 [wait=0] ? (number) : 需要延遲的毫秒數(shù)。

    2024年02月08日
    瀏覽(23)
  • 小程序如何使用防抖和節(jié)流?

    防抖(Debounce)和節(jié)流(Throttle)都是用來(lái)優(yōu)化函數(shù)執(zhí)行頻率的技術(shù),特別在處理用戶輸入、滾動(dòng)等頻繁觸發(fā)的情況下,它們可以有效減少函數(shù)的執(zhí)行次數(shù),從而提升性能和用戶體驗(yàn)。但它們的工作方式和應(yīng)用場(chǎng)景有所不同。 防抖的主要思想是,當(dāng)持續(xù)觸發(fā)事件時(shí),在事件最

    2024年02月13日
    瀏覽(20)
  • 微信小程序防抖

    微信小程序閉包-防抖 這里主要用到閉包,將函數(shù)內(nèi)的值保存下來(lái),下次點(diǎn)擊的時(shí)候進(jìn)入判斷,如果定時(shí)器啟動(dòng)了,則清除定時(shí)器,直到最后一次啟動(dòng)定時(shí)器,也就是說(shuō),在規(guī)定的時(shí)間內(nèi)只會(huì)觸發(fā)最后一次定時(shí)器,從而達(dá)到防抖效果。 防抖的使用場(chǎng)景: 防止連續(xù)快速點(diǎn)擊 防

    2024年02月16日
    瀏覽(13)
  • 微信小程序顯示loading效果,微信小程序節(jié)流效果,微信小程序生命周期,微信小程序組件的創(chuàng)建與使用

    微信小程序顯示loading效果,微信小程序節(jié)流效果,微信小程序生命周期,微信小程序組件的創(chuàng)建與使用

    ? ? ? ? 文檔地址:wx.showLoading(Object object) | 微信開放文檔 ? ? ? ? 請(qǐng)求前 顯示loading 效果 ,請(qǐng)求結(jié)束后隱藏loading ? ? ? ? 下拉觸底需要時(shí)間比較長(zhǎng),但是可能會(huì)一直進(jìn)行請(qǐng)求,我們可以 設(shè)置一個(gè) 加載狀態(tài) ,用來(lái)控制什么時(shí)候 才可以加載 ? ? ? ? 當(dāng)我們loading 效果為tr

    2024年02月10日
    瀏覽(95)
  • Vue 3 中的極致防抖/節(jié)流(含常見(jiàn)方式防抖/節(jié)流)

    Vue 3 中的極致防抖/節(jié)流(含常見(jiàn)方式防抖/節(jié)流)

    各位朋友你們好呀。今天是立春,明天就是正月十五元宵節(jié)了,這種立春 + 元宵相隔的時(shí)候,可是很難遇到的,百年中就只有幾次。在這提前祝大家元宵快樂(lè)。 今天給大家?guī)?lái)的是 Vue 3 中的極致防抖/節(jié)流(含常見(jiàn)方式防抖/節(jié)流) 這篇文章,文章中不僅會(huì)講述原來(lái)使用的防

    2024年02月01日
    瀏覽(16)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包