首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果数据源有大量数据,则Kendo combobox需要时间来加载和打开

如果数据源有大量数据,则Kendo combobox需要时间来加载和打开
EN

Stack Overflow用户
提问于 2014-10-08 20:25:45
回答 1查看 1.6K关注 0票数 1

我曾尝试使用具有如下结构的数据源的Kendo Combobox:

代码语言:javascript
运行
复制
{text: "12 Angry Men", value:"1"}

并且Kendo Combobox被初始化为:

代码语言:javascript
运行
复制
$("#movies").kendoComboBox({
     dataTextField: "text",
     dataValueField: "value",
     dataSource: data,
     height: 100
})
    .closest(".k-widget")
    .attr("id", "movies_wrapper")
;

$("#filter").kendoDropDownList({
    change: filterTypeOnChanged
});

发现对于大约40,000个对象的数据,每次加载组合框需要3秒的延迟,打开组合框需要6-7秒的延迟。

我调试了本机代码,发现对于要在弹出窗口中显示的这么多对象,处理动画确实需要一些时间。

因此,我尝试将动画作为false进行传递。

但是这仍然没有降低delay.Can有人帮助解决这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2014-10-09 00:06:28

我自己也遇到了类似的问题,试图加载近似。20000个项目放入一个组合框中。

绕过它的方法是使用服务器过滤来仅拉回有限数量的结果。我发现100是一个足够好的数字,如果结果不在那里,那么过滤条件需要更具体一点才能得到最终正确的项目。

这显然意味着需要更多的访问服务器才能获得结果,但我发现这是值得的。

代码语言:javascript
运行
复制
  $('#' + fullControlID).kendoComboBox({
        dataTextField: 'Text',
        dataValueField: 'Value',
        filter: "contains",
        autoBind: true,
        ignoreCase: true,
        minLength: 3,
        change: function (e) {
            $('#' + fullControlID).data("kendoComboBox").dataSource.read();
        },
        dataSource: {
            serverfiltering: true,
            serverPaging: true,
            pageSize: 100,
            transport: {
                read:
                    {
                        type: "POST",
                        dataType: "json",
                        url: transportUrl,
                        cache: false,
                        data: {

                            filterText: function () {
                                var filter = $('#' + fullControlID).data("kendoComboBox").input.val();
                                if(filter === '{the place holder text ignore it}')
                                {
                                    filter = '';
                                }

                                return filter; 
                            }    

                        },
                    }
            }
        }


    });

上面是一些代码,我使用适当的控制器/动作(使用mvc)在幕后完成此操作。

如果您需要更多信息,请让我知道。

注意:(fullcontrolID是组合框控件的id )。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26256863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档