0
点赞
收藏
分享

微信扫一扫

#yyds干货盘点#golang内存分页源码解析

1.前文回顾

​​数据库分页​​

上篇文章讲解到通过数据库的sql查出来的数据就是已经分页好的。

#yyds干货盘点#golang内存分页源码解析_数据库分页

是通过sql后面加的limit跟offset字段来进行分页,这篇文章讲解,已经查出来的list怎么实现内存分页呢。

2.前端参数

#yyds干货盘点#golang内存分页源码解析_sql_02

默认从第一页开始查询。

3.分页调用

#yyds干货盘点#golang内存分页源码解析_sql_03

如果没传参数,都使用默认值。

#yyds干货盘点#golang内存分页源码解析_数据库分页_04

4.分页源码

func (p *Pagination) GetValidPagination(total int) (startIndex, endIndex int) {

// no pagination
if p.Limit == NoPagination.Limit {
return 0, total
}

// out of range
if p.Limit < 0 || p.Offset < 0 || p.Offset > total {
return 0, 0
}

startIndex = p.Offset
endIndex = startIndex + p.Limit

if endIndex > total {
endIndex = total
}

return startIndex, endIndex
}

5.源码解析

#yyds干货盘点#golang内存分页源码解析_sql_05

如果不传煤业的大小,默认不分页,

#yyds干货盘点#golang内存分页源码解析_sql_06

最后一页超出范围,只显示到最后一条

#yyds干货盘点#golang内存分页源码解析_分页_07

解析url的相关参数。

#yyds干货盘点#golang内存分页源码解析_分页_08

offset的值是通过参数解解析处理的。

6.前端效果图

#yyds干货盘点#golang内存分页源码解析_分页_09

是不是看了这篇文章,发现分页如此的简单。

如果这篇文章帮到了你,希望你可以帮小编投投票,47号峰啊疯了,投完可以抽奖哦

 https://blog.51cto.com/blog-contest/index#part4

#yyds干货盘点#golang内存分页源码解析_数据库分页_10

#yyds干货盘点#golang内存分页源码解析_sql_11


举报

相关推荐

0 条评论