小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
在小程序开发的过程中,经常会遇到在监听事件中同一个事件会被执行 N 次,为了避免性能浪费,或者避免开发错误,我们需要做一些操作实现同一页面一个事件只执行一次。实现思路比较简单,即在监听事件中定义一个 flag:1,当事件被触发的时候给flag+1,然后判断只有flag=1的时候事件才会执行。具体代码如下:
data: {
tag: 1,
},
methods: {
change(){
if(this.data.tag == 1){
...具体事件代码
}
this.data.tag = this.data.tag+1;
}
}
网上还有其他的解决函数多次调用只执行一次的小技巧方法:比如使用 全局变量 globalData,但大致思路是一样的。
Page({
data: {
//新增
aa:true
},
onLoad: function (options) {
},
play(e){
console.log(e.detail)
let a=Math.floor(e.detail.duration/3)
let b=Math.floor(e.detail.currentTime)
if(a==b&&this.data.aa){
//新增
this.setData({
aa:false
})
console.log("已记录")
}
}
})
欢迎指正,如果有更好的方法,也请不吝赐教。