前言
相信大家都遇到过SharePoint Online取数据的时候,列表数据超过5000阈值的情况,下面,我们介绍下如何利用分页获取超过5000条数据的列表。
正文
下面是源代码,主要有两个地方要注意,一个是最开始请求top=5000,告诉请求我们要分页。第二个就是data.d.next,如果这个返回一个url就可以请求这个url获取下一页,如此递归直到返回为空。
var url = _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('TestData')/items?$top=5000";
var response = response || []; // this variable is used for storing list items
function GetListItems(){
return $.ajax({
url: url,
method: "GET",
headers: {
"Accept": "application/json; odata=verbose"
},
success: function(data){
response = response.concat(data.d.results);
if (data.d.__next) {
url = data.d.__next;
GetListItems();
} else {
console.log(response);
return response;
}
},
error: function(error){
}
});
}
结束语
大家需要注意下,这里Ajax请求的Top并非一定是5000,如果当前页面只需要20条数据,也可以是20,等到点下一页的时候再next里面的请求获取下一页,这样对性能更友好。
所有评论(0)