JQuery 构建客户/服务分离的链接模型中Table分页代码效率初探

2020-05-23 06:05:57易采站长站整理



结合以上代码和该图讲解:


1)首页操作


list.RemoveRange(PageCount, list.Count – PageCount); 


翻译成数字:list.RemoveRange(5,14-5); 


首页显示的元素:A1 A2 A3 A4 A5 对应的索引:0 1 2 3 4


list.RemoveRange(5,14-5);  //排除索引值为5(含自身)的后面的所有元素,这样列表中只有A1-A5 元素


 


2)中间页操作:(这里就是第2页)



CurrentPage 等于 2


 int R1 = (CurrentPage – 1) * PageCount-1; 等于4
 int R2 = CurrentPage  * PageCount;             等于10


 


R1 和R2 代表两个区间范围索引,即在索引4(不含索引4) 到 索引10(不含索引10) 之间的元素,是我们要取出的元素

List<TB_WEB_NZ_INVESTMENT> list1 = new List<TB_WEB_NZ_INVESTMENT>();
for (int i = 0; i < list.Count; i++)
{
if (i > R1&&i<R2)
{
list1.Add(list[i]);
}
}
list.Clear();
list = list1;

3)尾页操作:
//尾页
//但返回的显示对象列表确只能是最后一页里面的记录
//这里需要剔除不是最后一页的元素对象
list.RemoveRange(0,(CurrentPage-1) * PageCount);
尾页的代码就简单一些。
从以上的服务端代码,我们看出虽然每次从数据库返回全部的代码到webservice端,但通过这个方法,就将其无用的记录全部过滤了,把剩下的元素传递到客服端,这样不管记录有多少条,每次返回页面的都只有一点点,提高了效率,避免了webservice传递大数据的问题,这样这个框架在传递大数据的方面基本不存在任何问题(排除一些及其特殊的东西),运用这个框架在效率方面不存在任何问题,甚至比普通的页面还要快。
客户端代码片段:
客户端就不再详细说明了,客户端需要传入
PageCount  每页显示的记录数
CurrentPage 当前页数
表格的html:
代码

<table id=”TData” width=”100%” >
<thead id=”thead”>
<tr id=”TR_Header” class=”MyTableTR_Header” align=”center” style=” height:25px”>
<td style=”width:1%; display:none” class=”MyTableTD”></td>
<td style=”width:10%” >投资人类型</td>
<td style=”width:10%”>投资人</td>
<td style=”width:10%”>出资方式</td>