Javascript函数节流 —— How To Use Throttle

Posted 黑子Kuroko

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Javascript函数节流 —— How To Use Throttle相关的知识,希望对你有一定的参考价值。

为限制输入框change事件疯狂发送查询请求,此时我们就需要用一个节流函数来优化一下性能了。

大致思路:设置一个定时器,在指定时间间隔内运行代码时重置定时器,直到函数请求停止,函数才会在限定时间之后才会正式执行。

实际项目中,将节流函数挂载到vue原型上,方便调用,例 main.js 中:

// 写一个节流函数
Vue.prototype.$throttle = (method) => 
    clearTimeout(method.tId)
    method.tId = setTimeout(function() 
        method()
    , 500)

当某个页面需要用到它时,例 area-select.vue 中:

filterMethod(key) 
    this.searchValue = key
    this.$throttle(this.listMerIndex)
,
listMerIndex() 
    this.areas = null
    this.searchValue = this.searchValue.trim()
    if (!this.searchValue) 
        return false
    
    let data = 
        merRole: 5,
        realName: this.searchValue
    
    this.queryCancel && this.queryCancel()
    this.$apis.listMerIndex(data, this, 'queryCancel').then((res) => 
        this.areas = res.data
    ).catch((error) => 
        this.$message(
            showClose: true,
            type: 'error',
            message: error.message
        )
    )

参考链接:js函数节流

 

以上是关于Javascript函数节流 —— How To Use Throttle的主要内容,如果未能解决你的问题,请参考以下文章

[] + is equal to [object Object], in Javascript? How? [duplicate]

How difficult is it to create a JavaScript framework?

[Javascript] How to deal with floating number

JavaScript节流和防抖

JavaScript函数节流

JavaScript防抖节流函数