用节流处理下拉刷新获取新内容刷新多次的问题

在写这个项目时我发现在滚动事件中符合滚动条件的情况下,由于触发多次滚动条件会出现刷新多次的情况,我使用了节流的的方式解决了这个问题

防抖具体操作如下(下列步骤,和代码内注释相对应,可以方便查看)

  • 在主体盒子的高度<=页面向下滚动的距离加屏幕高度的情况进行判断是否执行(在满足条件时新增数据)
  • 根据 this.ok(默认为true) 判断是否为1秒内第一次执行,如果为true执行下列代码
  • 将 this.ok 设为 fales,下次再触发scroll事件时判断不通过以此阻止代码多次执行
  • 执行新增数据代码
  • 设置一个炸弹定时器,在1秒内再次触发 scorll 事件时,this.ok 的值为 false ,新增方法不会被执行,在1秒后执行其中将 this.ok 设为 true的代码,这时再 触发 scorll 事件时 this.ok 的值为 true ,新增方法才会被执行。
export default {
  data() {
    return {
      boxheight: 0,
      topheight: 1,
      ok: true,
    };
  },
  methods: {
    throttle() {
     this.boxheight = Number(this.$refs.element.offsetHeight);     // 获取主体盒子高度
      this.topheight =
        Number(document.documentElement.scrollTop) +
        Number(document.documentElement.clientHeight);      // 获取页面向下滚动的距离加屏幕高度

  
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值