小程序使用函数节流解决页面多次跳转问题(小程序自动跳转到其他的小程序)

网友投稿 609 2022-10-02

小程序使用函数节流解决页面多次跳转问题(小程序自动跳转到其他的小程序)

小程序使用函数节流解决页面多次跳转问题(小程序自动跳转到其他的小程序)

本篇文章给大家介绍一下小程序使用函数节流解决页面多次跳转问题。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

程序员必备接口测试调试工具:立即使用Apipost = Postman + Swagger + Mock + Jmeter Api设计、调试、文档、自动化测试工具 后端、前端、测试,同时在线协作,内容实时同步

根据官方文档介绍,函数节流就是规定一个单位时间,在这个单位时间内,只能有一次触发事件的回调函数执行,如果在同一个单位时间内某事件被触发多次,只有一次能生效。因此修改.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.jsconst 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)})-

出现这种情况的原因是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 } }}-

推荐:《小程序开发教程》

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:WinDbg 常用指令
下一篇:何为API服务网关
相关文章

 发表评论

暂时没有评论,来抢沙发吧~