web的分页方法

web分页的三种方式,闲来无事总结一下。

1、使用前端表格插件进行分页

例如用bootstrap的拓展table组件,注意设置其分页属性时设置为“client”,

即是 sidePagination:"client", //客户端分页,如果改成server就是服务端分页。

对应的table组件会直接解析你的提供的数据进行分页操作。

优点:实现简单,直接设置前端table组件的参数即可。

缺点:从其实现原理上即可看出,这个数据是用户请求一次,服务器会将该表的所有数据返回到前端,刷新界面和点击下一页的操作的时候都会重复以上操作。显示数据的速度会因为网络带宽、服务器压力等而变慢。

2、后端用代码实现分页

写一个分页的方法,如:

public <T> List<T> pageSet(List<T> list,String limit,String offset){
		List<T> list2=new ArrayList();
		int limit2=Integer.parseInt(limit);  //页面大小
		int offset2=Integer.parseInt(offset); //第几页		
			for(int i=limit2*(offset2-1),j=0;i<list.size()&&j<limit2;i++,j++)
			{
				list2.add((T) list.get(i));
			}						
		return list2;

	}

就是根据当前第几页,每页显示几条数据进行分页数据的处理。

优点:一次请求只会向前端返回一页的数据,浏览器需要接收的数据变少了,页面展示会变快

缺点:本质还是一次请求从服务器获取该表的所有数据,后端代码处理之后只取了其中一部分。

3、数据库用sql语句实现

以MySQL为例, select * from sys_order limit 0,10   //从第0条开始查,一共查询10条记录

优点:真正实现了从数据库就是分页处理

缺点:不知道会不会在数据量大的时候数据库获取数据会变慢,由于没有测试过数据量较大的时候会有较大的速度区别,所以这里不是很清楚。

总结:其实实现方式都是根据需求来的,如果你只是做一个简单展示,数据量少,推荐第一种方式,实现简单。

我个人还是推荐第二和第三种方式,实现其实也很简单,就是多加两个参数就可以了。

PS:当然如果你使用了orm框架如Hibernate和Mybatis,这些框架都有对应的分页查询的拓展jar包,还是提供两个参数,当前页和当前页数据显示条数,就可以实现分页查询。具体可以去百度一下。


转载声明:本文为转载文章,原文章地址如下

作者:黄小泽
来源:CSDN
原文:https://blog.csdn.net/a1216701075/article/details/80793532

原文地址:https://www.cnblogs.com/spmt/p/10533550.html