JavaScript-jquery实现网页内容分页的一种方式

这是使用JavaScript原生方式&jquery实现web网页内容分页功能的一种方式。
闲来无事将以前的代码进行分析。
是本人两年前尝试通过JavaScript与jquery方式做的一个分页功能。(当时这家公司老板人非常nice,感恩这位老板)。

一般我们写分页,都是有三个变量,即当前页、每页多少条目、后台根据每页多少条目计算出的总页数。这其中每页多少条是固定的,每次向后台数据库请求数据,根据当前页位置只拿这固定的条目。这样方式是加载速度较为均衡,既不明显很慢也不是特别快。

我见过另一种分页思路,web页面首次向数据库请求数据,后台把库中条目数据整个儿发给前端,让前端页面接收所有数据然后再进行分页计算并展示,这种方式的弊端是初次加载非常耗时间,特别是数据量特别大的时候,优点是分页数据点击查找其他页面数据速度非常快。即初次加载慢,后面的操作就快很多了。

这里分页的实现思路是第一种,即:以当前页位置和每页多少条目两个变量向后台请求数据。

在这里插入图片描述

<div id="dom-group-page" class="dom-group-page">
	<div class="dom-group-page-btn">
        <span id="dom-ch-page-one" class="dom-ch-page" disabled="disabled" style="background: rgb(204, 204, 204);">上一页</span>
        <span id="dom-html-num-spot-left">...</span>
        <span id="dom-html-num-prev" class="dom-html-num" style="display: none;"></span>
        <span id="dom-html-num-one" class="dom-html-num" style="border: 1px solid rgb(61, 206, 111);">1</span>
        <span id="dom-html-num-two" class="dom-html-num" style="display: inline-block;">2</span>
        <span id="dom-html-num-spot">...</span>
        <span id="dom-ch-page-two" class="dom-ch-page" style="background: rgb(49, 111, 180);">下一页</span>
        <span id="dom-page-count">13</span>
        <span>到第<input type="text" id="dom-group-page-input" class="dom-group-page-input"></span>
        <span><button id="dom-page-subm">确定</button></span>
    </div>
</div>
var pageNum=1;       //第pageNum页
let pageSize;        //每页有pageSize条
let pageCount;       //总共有pageCount页

function SwitchPage(pageNum,pageCount){
    
    
    $("#dom-page-count").html("共"+pageCount+"页");
    if(pageNum<pageCount && pageNum>0){
    
    
        $("#dom-html-num-one").html(pageNum);
        $("#dom-html-num-two").html(Number(pageNum)+1);
        $("#dom-html-num-two").css("display","inline-block");
    }else if(pageNum==pageCount){
    
    
        $("#dom-html-num-one").html(pageNum);
        $("#dom-html-num-two").css("display","none");
    };
    if(pageNum==1){
    
    
        $("#dom-html-num-prev").css("display","none");
    }else if(pageNum>1 || pageCount>=3){
    
    
        $("#dom-html-num-prev").html(Number(pageNum)-1);
        $("#dom-html-num-prev").css("display","inline-block");
    };
    if(pageNum<=1){
    
    
        $("#dom-ch-page-one").attr("disabled","disabled");
        $("#dom-ch-page-one").css("background","#ccc");
        $(".dom-group-page-btn>span:nth-child(4)").css("border","1px solid #3dce6f");
        if(pageCount==1){
    
    
            $("#dom-ch-page-two").attr("disabled","disabled");
            $("#dom-ch-page-two").css("background","#ccc");
            $("#dom-html-num-spot").css("display","none");
        }else if(pageCount==2){
    
    
            $("#dom-html-num-spot").css("display","none");
        }else if(pageCount>2){
    
    
            $("#dom-ch-page-two").attr("disabled",false);
            $("#dom-ch-page-two").css("background","#3dce6f");
        };
    }else{
    
    
        $("#dom-ch-page-one").attr("disabled",false);
        $("#dom-ch-page-one").css("background","#3dce6f");
        if(pageNum>=pageCount){
    
    
            $("#dom-ch-page-two").attr("disabled","disabled");
            $("#dom-ch-page-two").css("background","#ccc");
        }else{
    
    
            $("#dom-ch-page-two").attr("disabled",false);
            $("#dom-ch-page-two").css("background","#3dce6f");
        };
    };
};
//输入框
$("#dom-page-subm").click(function(){
    
    
    pageNum=$("#dom-group-page-input").val();
    if(pageNum>pageCount){
    
    
        pageNum=pageCount;
    };
    if(pageNum<1){
    
    
        pageNum=1;
    };
    SwitchPage(pageNum,pageCount);
    if(pageNum>0 && pageNum<=pageCount){
    
    
       innerHml();
    };
    if(pageNum<=2){
    
    
        $("#dom-html-num-spot-left").css("display","none");
        if(pageNum==1 && pageCount != 1){
    
    
            $("#dom-ch-page-two").attr("disabled",false);
            $("#dom-ch-page-two").css("background","#3dce6f");
        };
    }else{
    
    
        $("#dom-html-num-spot-left").css("display","block");
    };
    if(pageNum>=(pageCount-1)){
    
    
        $("#dom-html-num-spot").css("display","none");
    }else{
    
    
        $("#dom-html-num-spot").css("display","block");
    }
});

function pageSwitch(){
    
    
    //pageNum=1;
    SwitchPage(pageNum,pageCount);
    let pageSwitchBtn = $(".dom-ch-page");
    let numSwitchBtn  = $(".dom-html-num");
    
    for(let jnum=0;jnum<numSwitchBtn.length;jnum++){
    
    
        ((jnum)=>{
    
    
            numSwitchBtn[jnum].onclick=function(){
    
    
                pageNum=numSwitchBtn[jnum].innerHTML;
                SwitchPage(pageNum,pageCount);
                if(pageNum>0 && pageNum<=pageCount){
    
    
                   innerHml();
                };
                if(pageNum<=2){
    
    
                    $("#dom-html-num-spot-left").css("display","none");
                    if(pageNum==1){
    
    
                        $("#dom-ch-page-two").attr("disabled",false);
                        $("#dom-ch-page-two").css("background","#3dce6f");
                    };
                }else{
    
    
                    $("#dom-html-num-spot-left").css("display","block");
                };
                if(pageCount>2){
    
    
                    if(pageNum>=(pageCount-1)){
    
    
                        $("#dom-html-num-spot").css("display","none");
                    }else{
    
    
                        $("#dom-html-num-spot").css("display","block");
                    };
                }
            };
        })(jnum);
    };
    
    for(let inum=0;inum<pageSwitchBtn.length;inum++){
    
    
        ((inum)=>{
    
    
            pageSwitchBtn[inum].onclick=function(){
    
    
                if(inum=='0'){
    
    
                    pageNum--;
                    if(pageNum<=1){
    
    
                        pageNum=1;
                    };
                    if(pageNum<=2){
    
    
                        $("#dom-html-num-spot-left").css("display","none");
                        if(pageNum<=2 && pageCount>2){
    
    
                            $("#dom-html-num-spot").css("display","block");
                        };
                        if(pageNum==1){
    
    
                            $("#dom-ch-page-two").attr("disabled",false);
                            $("#dom-ch-page-two").css("background","#3dce6f");
                        };
                    }else{
    
    
                        if(pageNum>=(pageCount-1)){
    
    
                            $("#dom-html-num-spot").css("display","none");
                        }else{
    
                            
                            $("#dom-html-num-spot").css("display","block");
                        };
                    };
                    SwitchPage(pageNum,pageCount);
                    if(pageNum>0 && pageNum<=pageCount){
    
    
                       innerHml();
                    };
                }else if(inum=='1'){
    
    
                    pageNum++;
                    SwitchPage(pageNum,pageCount);
                    if(pageNum>=pageCount){
    
    
                        pageNum=pageCount;
                        if(pageNum==pageCount){
    
    
                           $("#dom-html-num-spot").css("display","none");
                       }
                    };
                    if(pageNum<=2){
    
    
                        $("#dom-html-num-spot-left").css("display","none");
                    }else{
    
    
                        $("#dom-html-num-spot-left").css("display","block");
                    };
                    if(pageNum>0 && pageNum<=pageCount){
    
    
                       innerHml();
                       if(pageNum==pageCount || pageNum==(pageCount-1)){
    
    
                           $("#dom-html-num-spot").css("display","none");
                       }
                    };
                }else{
    
    
                    return;
                }
            };
        })(inum);
    };
};

function innerHml(){
    
    
    var that=this;
    $.ajax({
    
    
        cache:true,
        type:"GET",
        url:"./data/****.php",
        data:{
    
    
            pageNum:pageNum
        },
        async:false,
        success:function(data){
    
    
            var result_y=(JSON.parse(data))[1];
            var relHtml="";
            var start_str="";
            pageCount= (JSON.parse(data))[2];
            pageSwitch();
            
            let planString,plid,libraryString,purchaseString;
            for(var i=0;i<result_y.length;i++){
    
    
                relHtml+=`
                    <tr class="excel-data-box">
                    ...
                    </tr>
                `;
                start_str="";
            };
            $("#dev-data-search").html(relHtml);
        },
        error:function(){
    
    
            alert("请求出错了!");
        }
    })
}
$(function(){
    
    
    innerHml();
})

猜你喜欢

转载自blog.csdn.net/weixin_41993525/article/details/111999793