如何表明没有更多的项目从服务器淘汰赛js返回

时间:2013-04-18 18:44:33

标签: javascript asp.net-mvc knockout.js knockout-2.0

我从数据库和显示器返回大约200多个项目,但我想知道何时没有更多项目要返回,因为我在滚动加载功能中使用它并想告诉用户何时走到了尽头。

下一步 - 获取下一批用户

Next = function () {
    var _page = $.views.Roster.ViewModel.CurrentPage() + 1;
    $.views.Roster.GetPage("/api/Roster", 9, _page);
};

$.views.Roster.GetPage = function (url, id, pageNumber) {
        $.grain.Ajax.Get({
            Url: url,
            DataToSubmit: { pageNumber: pageNumber, id: id },
            DataType: "json",
            OnSuccess: function (data, status, jqXHR) {
                $.views.Roster.RosterViewModel.AddUsers(data);
                $.views.Roster.ViewModel.CurrentPage(pageNumber);
            }
        });
    };

如果我要提供更多信息,请告诉我。

1 个答案:

答案 0 :(得分:0)

你可以:

如果您控制返回的JSON 格式是可修改的(例如,它不是某种可公开访问的Web服务),您可以修改返回的响应,使其包含所需的信息作为一个额外的领域。

{
   users: [...your list of users data],
   hasMoreData: true
}

...或

假设数据以固定长度批次返回,检查返回批次的长度,如果它短于预期长度,则将其视为没有其他项目的标记(这会使您暴露于潜在的调用如果总记录是批次长度的精确倍数,则结果为空:

if (usersData.length < MAX_BATCH_LENGTH) {
   hasMoreData(false);
}