选择2 v4.0.0性能问题

时间:2015-10-13 18:31:43

标签: jquery drop-down-menu html-select jquery-select2

在使用select2下拉适配器时,我在IE中遇到了大量项目的性能问题。看起来这不是一个新问题,选择2并且人们过去已经通过它(即Select2 performance for large set of items}

但是,通过查看源代码,似乎上面链接的解决方案的支持已在select2 v4.0.0中弃用。有没有人使用select2 v4.0.0经历过大型列表的性能问题(特别是在IE中)?如果是这样,你是如何度过难关的。我喜欢在下拉菜单中的某种“分页”中解决问题,如上面的链接所示......但似乎它可能比它的价值更麻烦。对任何建议开放。

1 个答案:

答案 0 :(得分:0)

使用select2时,您可以向服务器发送请求,而不是使用大量不必要的数据填充它,这对性能来说要好得多。
这是一个例子:

$('#a_tags').select2({
                        placeholder: '',                            
                        allowClear : true,
                        minimumInputLength : 2,

                        ajax : {
                                    url : base_url + 'c_options/you_example',
                                    dataType : 'json',
                                    delay : 250,
                                    data : function(params){
                                        return {
                                                    term : params.term, // search term
                                                    type : 'tags'
                                        };
                                    },
                                    processResults : function(data, page){
                                        dataObj = new Array();
                                        results: $.map(data, function(obj){
                                            c(obj.l_id)
                                            c(obj.l_details)
                                            dataObj.push({
                                                        id : obj.o_id,
                                                        text : obj.o_name_a
                                            });
                                        })
                                        return {
                                            results : dataObj
                                        };
                                    },
                                    cache : true
                        }
            });