Jquery前端分页插件pagination同步加载和异步加载

上一篇文章介绍了Jquery前端分页插件pagination的基本使用方法和使用案例,大致原理就是一次性加载所有的数据再分页。//www.greatytc.com/p/a1b8b1db025b

但是这样写的缺点就是一次性加载数据进行分页的,后期数据多的话可能不行,数据量太大比如说上千条数据,在给每个页面分配固定的条数,一下子加载不出来,就会导致页面间的短暂空白,如果遇上网速不好,那差不多就是一个不完美的bug

一次性加载数据,前端分页

上一篇文章中提到的原理js代码如下:

    $(function() {  
        //默认每一页显示5条数据  
        getMsg(5)  
          
        //分页实现函数  
        function getMsg(num) {  
            $.ajax({  
                url : ROOT+'/map/getPeopleList',  
                type : 'GET',  
                dataType : 'json',  
                success : function(data) {  
                // 1.计算分页数量  
                var showNum = num;  
                var dataL = data.length;  
                var pageNum = Math.ceil(dataL / showNum);  
                $('.Pagination').pagination(pageNum,{  
                    num_edge_entries : 1,  
                    num_display_entries : 4,  
                    prev_text : "<<",  
                    next_text : ">>",  
                    callback : function(index) {  
                        var html = '<div>'  
                        for (var i = showNum * index; i < showNum  
                                * index + showNum; i++) {  
                            if (i < dataL) {  
                                html += "<p>" + data[i].name + "</p>"  
                            }  
                              
                        }  
                        html += '</div>';  
                        $('.list').html(html)  
                    })  
                }  
             })  
           }  
          }  
    })  

pagination一次性加载所有的数据再分页,数据太多了,一次性加载不出来,卡的很,和后台商量了一下,得出了一个简单的思路,当前页数和显示的条数即可,解决方案如下:

分批加载数据,前端分页(实现异步加载)

js代码:
    $(function() {  
        var pageSize = 5; // 每页显示多少条记录  
        var total; // 总共多少记录  
        Init(0); // 注意参数,初始页面默认传到后台的参数,第一页是0;  
        $(".Pagination").pagination(total, {  
            callback : PageCallback,  
            prev_text : '上一页',  
            next_text : '下一页',  
            items_per_page : pageSize,  
            num_display_entries : 4, // 连续分页主体部分显示的分页条目数  
            num_edge_entries : 1, // 两侧显示的首尾分页的条目数  
        });  
          
        //点击上一页、下一页、页码的时候触发的事件  
        function PageCallback(index, jq) { // 前一个参数表示当前点击的那个分页的页数索引值,后一个参数表示装载容器。  
            Init(index);  
        }  
      
      
        function Init(pageIndex) { // 参数就是点击的那个分页的页数索引值  
            $.ajax({  
                        type : "get",  
                        url : ROOT + "/map/getPeopleList?rows=" + pageSize + "&page="  
                                + pageIndex,  
                        async : false,  
                        dataType : "json",  
                        success : function(data) {  
                            // 赋值total,用于计算  
                            total = data.total;  
                            //拼接html(这个部分根据自己的需求去实现)  
                            var list = data.pList;  
                            var html = '<div>'  
                            for (var i = 0; i < list.length; i++) {  
                                html += "<p>" + list[i].name + "</p>"  
                            }  
                            html += '</div>';  
                            $('.list').html(html)  
      
      
                        },  
                        error : function() {  
                            alert("请求超时,请重试!");  
                        }  
                    });  
        };  
    });  

评价:分页插件pagination
此插件是jQuery的ajax分页插件。如果你用到此插件作分页的时候,涉及到的数据量大,可以采用异步加载数据,当数据不多的时候,直接一次性加载,方便简单。

自荐前端干货:

进阶攻略|前端最全的框架总结://www.greatytc.com/p/2a8ce7075d79
web开发快速提高工作效率的一些资源://www.greatytc.com/p/3cede64e87e5
前端学习的几个网站://www.greatytc.com/p/c36463dd56db
老司机程序员用到的各种网站整理://www.greatytc.com/p/c806eabe5bec
进阶攻略|前端完整的学习路线://www.greatytc.com/p/ed50ee3889d4
八款前端开发人员更轻松的实用在线工具://www.greatytc.com/p/267a01fb8bdb
前端几个常用简单的开发手册拿走不谢://www.greatytc.com/p/fd9689046a9b
程序员常用的六大技术博客类://www.greatytc.com/p/d1614f890282
九款优秀的企业项目协作工具推荐://www.greatytc.com/p/7df25e438610
移动端手势的七个事件库://www.greatytc.com/p/0754d5daa27e
Bootstrap相关优质项目学习清单://www.greatytc.com/p/80d229e7fedc
2018前端越来越流行的的技术://www.greatytc.com/p/d4af2aa96cee

文末福利:

福利一:前端,Java,产品经理,微信小程序,Python等资源合集大放送://www.greatytc.com/p/e8197d4d9880
福利二:微信小程序入门与实战全套详细视频教程

image

原文作者:祈澈姑娘
技术博客://www.greatytc.com/u/05f416aefbe1

90后前端妹子,爱编程,爱运营,爱折腾。
坚持总结工作中遇到的技术问题,坚持记录工作中所所思所见,欢迎大家一起探讨交流。

文末福利:关注「编程微刊」公众号 ,在微信后台回复「领取资源」,获取IT资源200G干货大全。公众号回复“1”,拉你进程序员技术讨论群

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,376评论 6 491
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,126评论 2 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,966评论 0 347
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,432评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,519评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,792评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,933评论 3 406
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,701评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,143评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,488评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,626评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,292评论 4 329
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,896评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,742评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,977评论 1 265
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,324评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,494评论 2 348