bootstrap-table深度分页问题解决方案

文章介绍了在使用bootstrap-table时,遇到大数据量分页可能导致服务器内存爆炸的问题,特别是对于像ES这样的分布式搜索引擎。为避免深度分页,建议在业务层限制用户操作,如百度那样只显示有限页码。文章提供了解决方案,即修改bootstrap-table源码,注释掉显示最后一页的逻辑,以防止用户乱跳转造成的资源消耗。
摘要由CSDN通过智能技术生成

           bootstrap-table默认的分页可以点最后一页,如果数据量小的话还没有什么问题,如果数据量大量问题就很大,尤其一些分布式搜索引擎例如ES,存储的数据比较多没有做好优化的话点击最后一页直接让服务器内存爆炸,具体可以搜一下ES深度分页的问题及解决方案,其中最重要的就是在业务层不要给用户点击深度分页的机会,例如百度分页按钮只会显示十个页码,没有最后一页,如果使用的是 bootstrap-table的话需要修改源码了,毕竟官方没有页码修改接口.

       首先打开  bootstrap-table核心文件,找到BootstrapTable.prototype.initPagination方法,并将最下面的一段代码注释掉

     

 if (this.totalPages >= 8) {
                if (this.options.pageNumber <= (this.totalPages - 4)) {
                    html.push('<li class="page-last-separator disabled">',
                        '<a href="#">...</a>',
                        '</li>');
                }
            }
            /* 
                      if (this.totalPages >= 6) {
                          if (this.options.pageNumber <= (this.totalPages - 3)) {
                              html.push('<li class="page-last' + (this.totalPages === this.options.pageNumber ? ' active' : '') + '">',
                                  '<a href="#">', this.totalPages, '</a>',
                                  '</li>');
                          }
                      }
          */
            html.push(
                '<li class="page-next"><a href="#">' + this.options.paginationNextText + '</a></li>',
                '</ul>',
                '</div>');
        }
将那个如果当前总页码大于6显示最后一页的逻辑注释掉,使用时就不会显示最后一页了,下面是我注释掉的效果

 这样服务端再限制一下页面跳转就可以防止用户乱跳转导致深度分页资源消耗的问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值