小程序使用函数节流解决页面多次跳转问题
阅读 15766 · 发布日期 2020-08-24 17:26 · 温州优光网络科技有限公司|建站|APP小程序制作|做网站SEO推广优化
【摘要】
本篇文章给大家介绍一下小程序使用函数节流解决页面多次跳转问题。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。在使用小程序的时候会出现这样一种情况:当网络条件差或卡顿的情况下,使用者会认为点击无效而进行多次点击,最后出现多次跳转页面的情况,这个问题可以通过JS中的函数节流和函数防抖找到解决方法。根据官方... 【温州小程序开发,温州微信公众号,平阳做网站,平阳网站建设公司,平阳小程序商城制作,昆阳万全做网站,鳌江水头小程序,萧江腾蛟微信公众号,山门顺溪南雁海西南麂凤卧麻步怀溪网络网店服务,政采云网店管理服务】...
本篇文章给大家介绍一下小程序使用函数节流解决页面多次跳转问题。
有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。
在使用小程序的时候会出现这样一种情况:
当网络条件差或卡顿的情况下,使用者会认为点击无效而进行多次点击,最后出现多次跳转页面的情况,这个问题可以通过JS中的函数节流和函数防抖找到解决方法。
根据官方文档介绍,函数节流就是规定一个单位时间,在这个单位时间内,只能有一次触发事件的回调函数执行,如果在同一个单位时间内某事件被触发多次,只有一次能生效。
因此修改.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) }
)这样,疯狂点击按钮也只会1s触发一次。
但是这样的话出现一个问题,就是当你想要获取this.data得到的this是undefined, 或者想要获取微信组件button传递给点击函数的数据e也是undefined,所以throttle函数还需要做一点处理来使其能用在微信小程序的页面js里。
出现这种情况的原因是throttle返回的是一个新函数,已经不是最初的函数了。
新函数包裹着原函数,所以组件button传递的参数是在新函数里。
所以我们需要把这些参数传递给真正需要执行的函数fn。
最后的throttle函数如下:
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 }
}
}
再次点击按钮this和e都有了:
推荐:
《小程序开发教程》以上就是小程序使用函数节流解决页面多次跳转问题的详细内容,更多请关注php中文网其它相关文章!
微信
分享相关标签:
小程序本文转载于:
即速资讯,如有侵犯,请联系a@php.cn删除
上一篇:
如何配置小程序开发项目结构?(教程)
下一篇:
小程序API可以实现什么功能?相关文章相关视频微信金山文档小程序如何在电脑上打开使用微信小程序如何开通流量主功能?(方法介绍)微信小程序如何缓存获取数据?wps发送到微信怎么是小程序微信小程序如何实现跳转?(方式介绍)小程序使用函数节流解决页面多次跳转问题登录小程序中心认识小程序的目录结构小程序的rpx长度单位详解 [温州做小程序]