SharePoint Online 使用Ajax请求超过5000条数据的列表

  前言

  相信大家都遇到过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里面的请求获取下一页,这样对性能更友好。

posted @ 2024-02-04 20:13  霖雨  阅读(18)  评论(0编辑  收藏  举报