0

我正在使用剔除 arrayfilter 来过滤项目。但是如果有超过 1000 条记录,那么它返回数据的速度非常慢。我该怎么做?这是我的方法

viewModel.filteredData = ko.computed(function () {
var str = "<temp>";
if (viewModel.selection() == "All") return viewModel.dataOne();
return ko.utils.arrayFilter(viewModel.dataOne(), function (data) {
    stringFromArray = data.display;
    if (stringFromArray.indexOf(str) == 0) {
        return true;
    }

   });
});

这是我的小提琴

当我选择选项按钮“全部”时,它将加载所有数据,如果我选择“已选择”,那么它将过滤记录。现在我的小提琴中没有太多记录,所以它的过滤速度非常快。但在我的现实生活应用程序中,我有超过 5000 条记录,显示所有记录需要 10 秒。我的意思是我从我的服务加载数据并加载数据并选择选项按钮“全部”。然后我选择“已选择”选项按钮,在 3-5 秒内过滤记录。现在,当我再次单击“全部”选项按钮时,重新加载数据需要 10 秒。我怎样才能提高速度。

我也在这里阅读了有关问题,但无法理解。

更新1

我决定做服务器端分页。有人可以给我链接以使用 kogrid 进行服务器端分页吗?我正在使用 WCF 服务来检索数据。我是否需要在每次调用时将 pagesize 参数传递给服务。如果有任何使用 kogrid 和 wcf 服务的示例,请告诉我。

4

1 回答 1

0

May be this link here will help you..

Iterating through a list of users and pushing to an array in knockout

This is how you would set up your viewmodel to enable paging.

And this link here

Make a WCF Service Accept JSON Data from jQuery.AJAX()

would help you get your WCF service work. Of course, the data would be the paging data from the first link.

于 2013-08-14T16:51:54.823 回答