成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

小程序使用函數(shù)節(jié)流解決頁(yè)面多次跳轉(zhuǎn)的示例-創(chuàng)新互聯(lián)

這篇文章主要介紹了小程序使用函數(shù)節(jié)流解決頁(yè)面多次跳轉(zhuǎn)的示例,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

創(chuàng)新互聯(lián)建站是一家專(zhuān)注于成都做網(wǎng)站、成都網(wǎng)站制作和德陽(yáng)服務(wù)器托管的網(wǎng)絡(luò)公司,有著豐富的建站經(jīng)驗(yàn)和案例。

在使用小程序的時(shí)候會(huì)出現(xiàn)這樣一種情況:當(dāng)網(wǎng)絡(luò)條件差或卡頓的情況下,使用者會(huì)認(rèn)為點(diǎn)擊無(wú)效而進(jìn)行多次點(diǎn)擊,最后出現(xiàn)多次跳轉(zhuǎn)頁(yè)面的情況,這個(gè)問(wèn)題可以通過(guò)JS中的函數(shù)節(jié)流和函數(shù)防抖找到解決方法。

根據(jù)官方文檔介紹,函數(shù)節(jié)流就是規(guī)定一個(gè)單位時(shí)間,在這個(gè)單位時(shí)間內(nèi),只能有一次觸發(fā)事件的回調(diào)函數(shù)執(zhí)行,如果在同一個(gè)單位時(shí)間內(nèi)某事件被觸發(fā)多次,只有一次能生效。因此修改.js文件如下:

function throttle(fn, gapTime) {
if (gapTime == null|| gapTime == undefined) {
gapTime = 1500
}
let _lastTime = nullreturn function () {
let _nowTime = +new Date()
if (_nowTime -_lastTime > gapTime || !_lastTime) {
fn()
_lastTime =_nowTime
}
}
}
module.exports = {
throttle: throttle
}
/pages/throttle/throttle.wxml:
tap
/pages/throttle/throttle.js
const util = require(\'../../utils/util.js\')
Page({
data: {
text: \'tomfriwel\'
},
onLoad: function (options) {
},
tap:util.throttle(function (e) {
console.log(this)
console.log(e)
console.log((newDate()).getSeconds())
}, 1000)
})

這樣,瘋狂點(diǎn)擊按鈕也只會(huì)1s觸發(fā)一次。

但是這樣的話(huà)出現(xiàn)一個(gè)問(wèn)題,就是當(dāng)你想要獲取this.data得到的this是undefined, 或者想要獲取微信組件button傳遞給點(diǎn)擊函數(shù)的數(shù)據(jù)e也是undefined,所以throttle函數(shù)還需要做一點(diǎn)處理來(lái)使其能用在微信小程序的頁(yè)面js里。

小程序使用函數(shù)節(jié)流解決頁(yè)面多次跳轉(zhuǎn)的示例

出現(xiàn)這種情況的原因是throttle返回的是一個(gè)新函數(shù),已經(jīng)不是最初的函數(shù)了。新函數(shù)包裹著原函數(shù),所以組件button傳遞的參數(shù)是在新函數(shù)里。所以我們需要把這些參數(shù)傳遞給真正需要執(zhí)行的函數(shù)fn。

最后的throttle函數(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
        }
    }
}

再次點(diǎn)擊按鈕this和e都有了:

小程序使用函數(shù)節(jié)流解決頁(yè)面多次跳轉(zhuǎn)的示例

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“小程序使用函數(shù)節(jié)流解決頁(yè)面多次跳轉(zhuǎn)的示例”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,,關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

網(wǎng)站名稱(chēng):小程序使用函數(shù)節(jié)流解決頁(yè)面多次跳轉(zhuǎn)的示例-創(chuàng)新互聯(lián)
文章路徑:http://jinyejixie.com/article40/dpsjeo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、微信小程序、靜態(tài)網(wǎng)站、App設(shè)計(jì)、自適應(yīng)網(wǎng)站、企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名
固镇县| 响水县| 中超| 虎林市| 林州市| 棋牌| 江永县| 宽甸| 东平县| 米易县| 浮山县| 南丹县| 乌苏市| 广灵县| 锡林郭勒盟| 平山县| 桦川县| 陵川县| 西丰县| 嘉定区| 交口县| 伊吾县| 峨眉山市| 岳普湖县| 惠水县| 马公市| 揭西县| 应城市| 淮南市| 旬邑县| 灵宝市| 邵武市| 广河县| 宣城市| 酉阳| 吉安县| 七台河市| 右玉县| 南安市| 堆龙德庆县| 鲁山县|