移動端下拉分頁加載插件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();
                }
            });    
        }
    })  
}

 

 

 

這樣就完美解決了安卓手機上的,第一次點擊搜索不進行查詢的問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM