我想使用数据表实现服务器端分页,我可能有大约200条记录,我理解服务器端分页如何工作,我们为每个链接分别发送ajax请求,现在我们向服务器发送参数如页码(绘制)页面开始,如果我想要每页10条记录,是否意味着我们应该发送20条ajax请求,每次增加页面数量200条记录并从服务器端处理数据并每次返回json对象?
这是我实现它的方式除了syntaxt这是我实现它的方式吗?
$('#tableEM').DataTable( {
"sPaginationType": "full_numbers",
"processing": true,
"serverSide": true,
"sAjaxDataProp":"",
"columns":[{"keyword":"keyword","updated_date":"updated_date","action":"delete"}],
'paging': true,
"ajax": {
"url": "/rest/events/keywords/sereverPagination1",
type: "GET",
data:{
"iDisplayStart":i,
"iDisplayLength":10,
"draw": draw,
},
success: function (jsonEM)
{
console.log(jsonEM)
for(var i=0; i<=jsonEM.length; i++){
console.log(jsonEM[i])
console.log(i)
$('#topicContainer').append('<tr>'+
'<td>'+jsonEM[i].keyword+'</td>'+
'<td>'+jsonEM[i].updated_date+'</td>'+
'<td>'+jsonEM[i].action+'</td>'+
'</tr>')
}
}
}
} );
执行是否正确?请帮助。我正在使用弹簧作为后端
我的服务器端实现
@RequestMapping(value="/rest/events/keywords/sereverPagination1")
public List<EventMonitor> getResults(@RequestParam(value="iDisplayStart",required=true)int iDisplayStart,@RequestParam(value="iDisplayLength",required=true)int iDisplayLength){
ArrayList<EventMonitor> keywordList=(ArrayList<EventMonitor>) _eventMonitorDao.getTargetList(0);
ArrayList<EventMonitor> sublist= (ArrayList<EventMonitor>) keywordList.subList(iDisplayStart, iDisplayLength);
return sublist;
}