Cet article vous présentera comment utiliser la limitation de fonctions dans de petits programmes pour résoudre le problème des sauts de pages multiples. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il sera utile à tout le monde.
Lors de l'utilisation de mini-programmes, il y aura une situation : lorsque les conditions du réseau sont mauvaises ou bloquées, l'utilisateur pensera que le clic est invalide et cliquera plusieurs fois. et enfin, la page saute plusieurs fois. Ce problème peut être résolu grâce à la limitation des fonctions et à la fonction anti-shake dans JS.
Selon la documentation officielle, la limitation des fonctions consiste à spécifier une unité de temps. Dans cette unité de temps, la fonction de rappel qui déclenche l'événement ne peut être exécutée qu'une seule fois si un événement est déclenché plusieurs fois dans la même unité. le temps, , ne peut prendre effet qu’une seule fois. Modifiez donc le fichier .js comme suit :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) })
function throttle(fn, gapTime) { if (gapTime == null|| gapTime == undefined) { gapTime = 1500 } let _lastTime = null// 返回新的函数 return function () { let _nowTime = +new Date() if (_nowTime -_lastTime > gapTime || !_lastTime) { fn.apply(this, arguments) //将this和参数传给原函数 _lastTime =_nowTime } } }
Tutoriel de développement de mini-programmes》
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!