s***@126.com
s***@126.com
  • 发布:2017-01-08 21:50
  • 更新:2018-07-11 14:13
  • 阅读:2852

上拉刷新没有数据后,下拉新的问题,算是BUG吗

分类:MUI
var totalProperty = $!{totalProperty};  
            var limit = ${limit};  
            var start = ${start};  
            mui.init({  
                pullRefresh: {  
                    container: '#pullrefresh',  
                    down: {  
                        callback: pulldownRefresh  
                    },  
                    up: {  
                        height:100,  
                        auto:true,  
                        contentnomore:'没有更多数据了',//可选,请求完毕若没有更多数据时显示的提醒内容;  
                        contentrefresh: '正在加载...',  
                        callback: pullupRefresh  
                    }  
                }  
            });  
            /**  
             * 下拉刷新具体业务实现  
             */  
            function pulldownRefresh() {  
                start= limit;  
                console.log(start);  
                setTimeout(function() {  
                    mui.ajax('${basePath}zxNoHandleList.shtml',{  
                        data:{  
                            reqAjax:'reqAjax',  
                            start:0  
                        },  
                        type:'post',//HTTP请求类型  
                        timeout:10000,//超时时间设置为10秒;                
                        success:function(data){  
                            $(".lists").html(data);  
                            mui('#pullrefresh').pullRefresh().endPulldownToRefresh(); //refresh completed  
                            mui('#pullrefresh').pullRefresh().refresh(true);  
                        },  
                        error:function(xhr,type,errorThrown){  
                            //异常处理;  
                            console.log(type);  
                        }  
                    });                   
                }, 1000);  

            }  
            /**  
             * 上拉加载具体业务实现  
             */  
            function pullupRefresh() {  
                start = start+limit;  
                setTimeout(function() {  

                    mui.ajax('${basePath}zxNoHandleList.shtml',{  
                        data:{  
                            reqAjax:'reqAjax',  
                            start:start,  
                        },  
                        type:'post',//HTTP请求类型  
                        timeout:10000,//超时时间设置为10秒;                
                        success:function(data){  
                            console.log(start);  
                            $(".lists").append(data);  
                            mui('#pullrefresh').pullRefresh().endPullupToRefresh(start>=totalProperty);  
                        },  
                        error:function(xhr,type,errorThrown){  
                            //异常处理;  
                            console.log(type);  
                        }  
                    });  
                }, 1000);  
            }

如代码,我的分页条件,当前开始条数大于等于总条数时我停止下拉加载mui('#pullrefresh').pullRefresh().endPullupToRefresh(start>=totalProperty);
空间会显示没有更多数据
当我下拉刷新时问题就来了
我的下拉刷新时ajax请求,把开始条数改为0条,如果这时候我不
mui('#pullrefresh').pullRefresh().refresh(true);
那么下面就会一直显示没有更多数据,无法重新开始上拉加载
但是如果我
mui('#pullrefresh').pullRefresh().refresh(true);
这串代码又会给我自动加载一次下一页数据,
问题所在就是,我其实只有一页数据,即一条数据,当我在下拉刷新加上重置上拉加载时( mui('#pullrefresh').pullRefresh().refresh(true);)会给我重复请求一次。结果页面就会出现两条一样的数据,有大神知道怎么解决吗?

2017-01-08 21:50 负责人:无 分享
已邀请:
s***@126.com

s***@126.com (作者)

我刚刚又调试了一下,发现了,问题所在,即

mui('#pullrefresh').pullRefresh().refresh(true);

重置上拉加载时,并不能实时知道我的分页条件,即无论如何,只要使用重置

mui('#pullrefresh').pullRefresh().refresh(true);

哪怕我只有一页并没有下一页,但页面也一定能重新上拉加载,且会自动加载一次下一页。
但是我的上拉加载条件是当前条数小于等于总条数,在这个方法里面已经写了

mui('#pullrefresh').pullRefresh().endPullupToRefresh(start>=totalProperty);

若使用重置,就无法判断我的分页是否有数据

s***@126.com

s***@126.com (作者)

再补充一下我的业务逻辑,我想做的就是,当我上拉加载到最后没有数据后,我下拉刷新,可以刷新整个页面状态,页面数据从第一页开始,继续可以上拉加载,但条件是下拉刷新不能刷新页面,必须AJAX 请求从第一页开始。

石软

石软

这个问题一致没解决,一年了都快,不知道HB的人天天在干嘛,还号称H5领导者。@DCloud

1***@qq.com

1***@qq.com - 90后

每次下拉刷新后,都把上拉加载给重置掉,并且把页数设置为第一页

4***@qq.com

4***@qq.com

你每次下拉刷新后加一行
setTimeout(function() {
mui('#pullrefresh').pullRefresh().refresh(true);
}, 800);//重置下拉加载
就解决这个问题了

该问题目前已经被锁定, 无法添加新回复