wx.request,跟bindscrolltolower一起使用有bug

发布于 8 年前作者 yong3020196 次浏览最后编辑 8 年前来自 ask

wx.request,跟scroll-view的bindscrolltolower一起使用有bug。

一下子无数请求,有人说没关系,多请求是好的。但是已经超过10个,而且多次成功 请求,计数次数不准确了!

10 回复
fang71
fang711 楼6 年前

那你弄个定时器再试试 别让他变这么快

duanmin
duanmin2 楼6 年前

是吧?都说有问题了

yangzhu
yangzhu3 楼6 年前

我试了下你的代码   你的request 都是很快就请求完毕了  怎么这么快

仔细看isCan的状态是有变化的  但是太快了

rlei
rlei4 楼6 年前

贴你代码 帮你看看哪错了

pmo
pmo5 楼6 年前

你这个实际上是发完请求返回数据后 才能再触发去发请求  这个现在没有错

这个只是发请求间隔快了 并没有重复请求

你这个没错啊   你再纠结啥了

jun67
jun676 楼6 年前

错了错了,你就算没有返回一样触发fail的,还是一样的,wx.request本来就是多请求的,问题是scroll-view的触发也是多次触发。主要是解决scroll-view拖下去触发一次wx.request。结果触发无数次了。估计是scroll-view的问题

taomin
taomin7 楼6 年前

汗了,变快难道还有错吗?加上放上定时器也没用的

mchang
mchang8 楼6 年前
var app = getApp()
Page({
  data: {
    logs: '56',
    myopenid:'',
    iscan:true,
    yue:'',
    nian:'',
    height:'300',
    nei:[],
    nzc:'',
    nsr:'',
    yzc:'',
    ysr:'',
    s:20,
    e:40,
    zai:'',
    xiu:[],
    id:''
    
  },
  inde:function (e){
    console.log(e)
   app.xiu=e.currentTarget.dataset
 wx.navigateTo({
      url: '../ji/ji'
    })
  },
  lower:function (k) {
   
  //console.log(k)
  wx.showToast({
      title: '加载中',
      icon: 'loading'
    })
 var that=this
  
 const page=20
var iscan=that.data.iscan
 console.log(that.data.s)
 console.log(that.data.e)
if(iscan){
  that.setData({iscan:false})
        wx.request({
  url: 'https://shang.32888.cn/jizhang/get/test1.php',
  data: {
    s: that.data.s ,
     r: app.data.yemian.openid
  },
  header: {
      'content-type': 'application/json'
  },
  success:function(res) {
 wx.hideToast()
  console.log('nei',res)
 //var id = res.data.nei[0].id;
 //that.setData({ id: id});
 //if(that.data.id==id){return;}
 
if(res.data.nei==null){
  res.data.nei=[{neirong:'没有数据了,这行是最后一行'}]
  that.setData({ nei: that.data.nei.concat(res.data.nei)})
return false
}
that.setData({ nei:that.data.nei.concat(res.data.nei) })
 // console.log(res.data.length)
  if(!res.data.nei){that.data.zai='kong'}
//console.log(that.data.s)
  that.setData({
    s: that.data.e,
    e: that.data.e + page
  })
  that.setData({ iscan: true })
  }
 
 
})
  }
 
 
 
  },
     
  onLoad: function (e) {
        var that=this
        that.setData({ myopenid: app.data.yemian.openid })
        var date = new Date();
        var mou = date.getMonth() + 1
        var nian = date.getFullYear()
        that.setData({ height: app.data.yemian.height - 70, yue: mou, nian:nian})
       //  console.log('zhang',e)
 //var shu='hy'
      wx.request({
  url: 'https://shang.32888.cn/jizhang/get/test1.php',
  data: {
     r: app.data.yemian.openid,
     s:""
  },
  success:function(res) {
 
 //console.log(res.data)
  
  },
  complete:function(res) {
    console.log(res.data)
   var da=res.data
   that.setData({ nei: da.nei, nsr: da.nsr.shouru, nzc: da.nzc.zhichu, yzc: da.yzc.zhichu, ysr: da.ysr.shouru})
  }
})
 
  }
})
zhengmin
zhengmin9 楼6 年前

我试了一下,在回调 console.log还是会重复出现

xia81
xia8110 楼6 年前

没问题什么防止刷新啊  就是防止多发请求的 导致计数错误

上拉 分页  这是我做的 每页50条商品

用开关控制发不发请求不就得了