移动端下拉分页加载插件dropload.js

一、dropload.js下载地址:

http://www.jq22.com/jquery-info6960

该地址有dropload.js的基础说明文档,下载的压缩包有相应的demo

二、依赖

Zepto 或者 jQuery 1.7以上版本,推荐jQuery 2.x版本(二者不要同时引用)

Zepto or jQuery 1.7+,recommend to use jQuery 2.x(not use them at the same time)

三、bug及解决方案

1.小屏手机不加载问题

方案:将源文件的distance(拉动距离)参数改成2000;

1.模糊查询,点击完搜索按钮,因上拉事件无法触发,进到页面就没有数据问题。

一般来说,dropload的加载是没有问题,但是,需求往往不是服务端一次性返回所有数据,往往还要支持服务端分页,搜索,排序,多条件筛选等功能。分页问题就不必说了,dropload本身的意义就是分页加载

前段时间,在使用dropload进行条件查询时,遇到了这个问题。

方案:dropload本身的思想就是一次向服务器请求一页数据(条数自定义)。这样每次只请求需要的几条数据,减少了服务器响应时间。

而解决这个问题的思想就在于分步加载,第一步,不利用dropload进行ajax请求第一页数据,剩余页使用dropload请求

改进代码如下:

 function selectMore(el){
    var pageNum = 1;
    // 每页展示6个
    var pageSize = 6;
    var keyword = $(".search input").val();  

    var id = getUrlParam("id");
    el.find($(‘.lists‘)).html("");
    $(‘.dropload-down‘).remove();

    var result = ‘‘;
    $.ajax({
        type: "post",
        url: BasicPath.URL + InterFaceJson.pageSelect,
        async:true,
        data:{
            pageSize: pageSize,
            pageNum: pageNum,
            categoryID: id,
            pattern: keyword
        },
        success: function(res){
            var lists = res.data.list;
            var arrLen = lists.length;            

            for(var i = 0; i < arrLen; i++){

                result += ‘‘;//html模板,你懂得
            }
            setTimeout(function(){
                // 插入数据到页面,放到最后面
                el.find($(".lists")).append(result);

            },500);
            if(arrLen<6){
                $(".dropload-refresh").html(‘没有更多内容了‘);

            }
        }
    })
    self.moreFund = el.dropload({
        scrollArea : window,
        domDown:{
            domClass:‘dropload-down‘,
            domRefresh:‘<div class="dropload-refresh">↑上拉加载更多</div>‘,
            domLoad:‘<div class="dropload-load">正在加载中</div>‘,
            domNoData:‘<div class="dropload-noData">没有更多内容了</div>‘
        },
        distance: 2000,
        loadDownFn : function(me){
            pageNum++;
            var result = ‘‘;
            $.ajax({
                type: "post",
                url: BasicPath.URL + InterFaceJson.pageSelect,
                async:true,
                data:{
                    pageSize: pageSize,
                    pageNum: pageNum,
                    categoryID: id,
                    pattern: keyword
                },
                success: function(res){
                    var lists = res.data.list;
                    var arrLen = lists.length;        

                    if( arrLen>0 ){
                        for(var i = 0; i < arrLen; i++){

                            result += ‘‘;//html模板,你懂得
                        };
                    }else{
                        // 锁定
                        me.lock();
                        // 无数据
                        me.noData();
                    }
                    setTimeout(function(){
                        // 插入数据到页面,放到最后面
                        el.find($(".lists")).append(result);
                        // 每次数据插入,必须重置
                        me.resetload();
                    },500);
                },
                error: function(xhr, type){
                    alert(‘Ajax error!‘);
                    // 即使加载出错,也得重置
                    me.resetload();
                }
            });
        }
    })
}

这样就完美解决了安卓手机上的,第一次点击搜索不进行查询的问题。

时间: 2024-10-13 00:20:42

移动端下拉分页加载插件dropload.js的相关文章

Android UI--自定义ListView(实现下拉刷新+加载更多)

http://blog.csdn.net/wwj_748/article/details/12512885 Android UI--自定义ListView(实现下拉刷新+加载更多) 关于实现ListView下拉刷新和加载更多的实现,我想网上一搜就一堆.不过我就没发现比较实用的,要不就是实现起来太复杂,要不就是不健全的.因为小巫近期要开发新浪微博客户端,需要实现ListView的下拉刷新,所以就想把这个UI整合到项目当中去,这里只是一个demo,可以根据项目的需要进行修改. 就不要太在乎界面了哈:

页面滚动动态加载数据,页面下拉自动加载内容 jquery

<!DOCTYPE=html> <html> <head> < script src="js/jquery.js" type="text/javascript"></ script> < script type="text/javascript"> $(document).ready(function(){ var range = 50; //距下边界长度/单位px var

Android Demo 下拉刷新+加载更多+滑动删除

小伙伴们在逛淘宝或者是各种app上,都可以看到这样的功能,下拉刷新和加载更多以及滑动删除,刷新,指刷洗之后使之变新,比喻突破旧的而创造出新的,比如在手机上浏览新闻的时候,使用下拉刷新的功能,我们可以第一时间掌握最新消息,加载更多是什么nie,简单来说就是在网页上逛淘宝的时候,我们可以点击下一页来满足我们更多的需求,但是在手机端就不一样了,没有上下页,怎么办nie,方法总比困难多,细心的小伙伴可能会发现,在手机端中,有加载更多来满足我们的要求,其实加载更多也是分页的一种体现.小伙伴在使用手机版QQ

下拉刷新,上拉加载功能--dropload.js的使用

这段时间工作太忙了,没时间更新博客内容,在这段时间,也学习到了不少新的知识.今天先整理一下dropload.js的使用方法吧,这个是在为项目中使用过的插件,很好用,但是真正用到项目中还是会有一些小小的问题,这个要具体问题具体分析了. 插件下载地址:https://github.com/ximan/dropload.大家也可以直接看源码        我的代码地址: https://github.com/dreamITGirl/projectStudy,大家可以在里面查找. 首先,这个插件是依赖于

下拉滚动加载更多数据

简单地实现一个下拉滚动时加载更多数据的效果.这种效果经常在手机端.瀑布流时看到 1 KISSY.add('load',function(S,Core,IO,XTemplate){ 2 var $ = S.all, D = S.DOM, E = S.Event; 3 var API = { 4 'query':'query.do' 5 }; 6 var tpl = '{{#each result}}'+ 7 '<tr>'+ 8 '<td><input type="ch

Android智能下拉刷新加载框架—看这些就够了

一些值得学习的几个下拉刷新上拉加载开源库 Android智能下拉刷新框架-SmartRefreshLayout 支持所有的 View(AbsListView.RecyclerView.WebView....View) 和多层嵌套的视图结构 支持自定义并且已经集成了很多炫酷的 Header 和 Footer (图). 支持和ListView的同步滚动 和 RecyclerView.AppBarLayout.CoordinatorLayout 的嵌套滚动 NestedScrolling. 支持在An

jquery 下拉自动加载

function Map() //自定义map { this.container = new Object(); } Map.prototype.put = function(key, value) { this.container[key] = value; }; Map.prototype.get = function(key) { return this.container[key]; }; Map.prototype.keySet = function() { var keyset =

微信小程序 - (下拉)加载更多数据

注意和后端配合就行了,前端也只能把数据拼接起来! 无论是下拉加载还是加载更多,一样的道理! 注意首次加载传递参数 注意每次加载数据数 wxml <view class='table-rank'> <view class='tables center' wx:for="{{ranklist}}" wx:for-index="idx" wx:key="prototype"> <view class='stage-rank

listview 下拉刷新加载数据

点击头条,头条会变成以下: 然后,过一段时间,刷新完成以后,listview又setSelection(1),增加一条数据,同时,把顶部给遮挡住: 这是点击刷新,然后是下拉刷新: 最后结果和点击刷新相同.那现在开始看下代码: 首先看下所用到的控件和变量: // 状态 private static final int TAP_TO_REFRESH = 1;//点击刷新 private static final int PULL_TO_REFRESH = 2;  //拉动刷新 private sta