摘要:今天解決了一個小程序中函數(shù)節(jié)流的問題小記以下。定義一個函數(shù)函數(shù)里面定義一個變量返回一個匿名函數(shù)匿名函數(shù)里面操作這個變量使用的時候調(diào)用返回的匿名函數(shù),可以用一個變量來接受一個簡單的計數(shù)器代碼如下
今天解決了一個小程序中函數(shù)節(jié)流的問題 小記以下。
節(jié)流 lodash中是throttle()那個函數(shù),改天可以去研究下源碼
下面是我自己實現(xiàn)的節(jié)流函數(shù)
getClickTagFunc(){ //定義一個標識,用來判斷是否繞過下面匿名函數(shù)的判斷 let canRun = true //這個函數(shù)在onLoad()的時候就被調(diào)用 //會返回一個匿名函數(shù),這個匿名函數(shù)會被存在data里 return function(id, isLiked){ //匿名函數(shù)會在父作用域中去尋找canRun 如果是false 則不再執(zhí)行下面的代碼 return 掉 if(!canRun) return false //繞過判斷之后 立即把父作用域內(nèi)的值設為false 這個是關鍵 由于canRun是false 所以200毫秒之內(nèi)這個函數(shù)再被調(diào)用 就會直接被 return 掉 canRun=false setTimeout(() => { dosomething...... //做完想做的事情之后 把canRun設置為true 這樣dosomething才會再次被調(diào)到。通常dosomething這里會是一個回調(diào)函數(shù) canRun=true }, 200) } },
節(jié)流簡單點說就是稀釋函數(shù)被調(diào)用的頻率
然后還有一個就是閉包,之前一直不明白閉包要用在什么地方,今天算是初步弄明白了??梢宰尵植孔兞坎槐恢刂茫ǔ碚f 這是需要一個全局變量的。但是通過一個閉包也能完成。
1.定義一個函數(shù)
2.函數(shù)里面定義一個變量
3.返回一個匿名函數(shù)
4.匿名函數(shù)里面操作這個變量
5.使用的時候調(diào)用返回的匿名函數(shù),可以用一個變量來接受
一個簡單的計數(shù)器 代碼如下
function count(){ let x = 0 return function(){ console.log(x++) } } let run = count() setInterval(() => { run() }, 200);
文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/105559.html
摘要:函數(shù)的節(jié)流當持續(xù)觸發(fā)事件時,保證一定時間段內(nèi)只調(diào)用一次事件處理函數(shù)。也就是一個函數(shù)執(zhí)行一次后,只有大于設定的執(zhí)行周期后才會執(zhí)行第二次。記憶法讓函數(shù)執(zhí)行者冷靜下來后不一直抖動后,才真正執(zhí)行。 1.函數(shù)的節(jié)流 當持續(xù)觸發(fā)事件時,保證一定時間段內(nèi)只調(diào)用一次事件處理函數(shù)。也就是一個函數(shù)執(zhí)行一次后,只有大于設定的執(zhí)行周期后才會執(zhí)行第二次。記憶法:聯(lián)系到水流的流量,我想讓你1s只流出多少水你就只能...
摘要:函數(shù)的節(jié)流當持續(xù)觸發(fā)事件時,保證一定時間段內(nèi)只調(diào)用一次事件處理函數(shù)。也就是一個函數(shù)執(zhí)行一次后,只有大于設定的執(zhí)行周期后才會執(zhí)行第二次。記憶法讓函數(shù)執(zhí)行者冷靜下來后不一直抖動后,才真正執(zhí)行。 1.函數(shù)的節(jié)流 當持續(xù)觸發(fā)事件時,保證一定時間段內(nèi)只調(diào)用一次事件處理函數(shù)。也就是一個函數(shù)執(zhí)行一次后,只有大于設定的執(zhí)行周期后才會執(zhí)行第二次。記憶法:聯(lián)系到水流的流量,我想讓你1s只流出多少水你就只能...
摘要:函數(shù)的節(jié)流當持續(xù)觸發(fā)事件時,保證一定時間段內(nèi)只調(diào)用一次事件處理函數(shù)。也就是一個函數(shù)執(zhí)行一次后,只有大于設定的執(zhí)行周期后才會執(zhí)行第二次。記憶法讓函數(shù)執(zhí)行者冷靜下來后不一直抖動后,才真正執(zhí)行。 1.函數(shù)的節(jié)流 當持續(xù)觸發(fā)事件時,保證一定時間段內(nèi)只調(diào)用一次事件處理函數(shù)。也就是一個函數(shù)執(zhí)行一次后,只有大于設定的執(zhí)行周期后才會執(zhí)行第二次。記憶法:聯(lián)系到水流的流量,我想讓你1s只流出多少水你就只能...
摘要:若時間差大于間隔時間,則立刻執(zhí)行一次函數(shù)。不同點函數(shù)防抖,在一段連續(xù)操作結束后,處理回調(diào),利用和實現(xiàn)。函數(shù)防抖關注一定時間連續(xù)觸發(fā)的事件只在最后執(zhí)行一次,而函數(shù)節(jié)流側重于一段時間內(nèi)只執(zhí)行一次。 原博客地址,歡迎star 函數(shù)防抖和節(jié)流 函數(shù)防抖和函數(shù)節(jié)流:優(yōu)化高頻率執(zhí)行js代碼的一種手段,js中的一些事件如瀏覽器的resize、scroll,鼠標的mousemove、mouseover...
閱讀 1686·2021-11-19 09:40
閱讀 2939·2021-09-24 10:27
閱讀 3227·2021-09-02 15:15
閱讀 1888·2019-08-30 15:54
閱讀 1213·2019-08-30 15:54
閱讀 1377·2019-08-30 13:12
閱讀 642·2019-08-28 18:05
閱讀 2808·2019-08-27 10:53