Javascript 如何在Jquery选择的插件中有效地使用?

Javascript 如何在Jquery选择的插件中有效地使用?,javascript,jquery,ajax,Javascript,Jquery,Ajax,我使用了jqueryselected插件。但是我的数据集太大,所以选择框挂起且速度慢。下面是我如何实现插件的: var request = $.ajax({ method: "POST", url: "ajaxRequest.php", dataType: "json", data: {fn: 'getCompanyEvent', company_id: selected_cid}, success: function(reqResult){

我使用了jqueryselected插件。但是我的数据集太大,所以选择框挂起且速度慢。下面是我如何实现插件的:

var request = $.ajax({
    method: "POST",
    url: "ajaxRequest.php",
    dataType: "json",
    data: {fn: 'getCompanyEvent', company_id: selected_cid},
    success: function(reqResult){
        var append_string = '<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">'+
                '<div class="row form-group">'+
                    '<label class="control-label col-lg-3">Select'+ ' Event</label><span class="col-lg-1">:</span>'+
                    '<div class="col-lg-8">'+ 
                        '<select class="chosen" style="width:200px;" onChange="getTemp(this)>'+
                          '<option>Select</option>';
                        $.each(reqResult.result, function(ind, va){
                            append_string += '<option value='+va.event_id+'>'+va.event_name+'</option>';
                        });    
    append_string += '</select>'+
                    '</div>'+
                '</div>'+ 
            '</div>';
        $('#dynmic_slct').append(append_string);
        jQuery(".chosen").chosen();
    }
});
var请求=$.ajax({
方法:“张贴”,
url:“ajaxRequest.php”,
数据类型:“json”,
数据:{fn:'getCompanyEvent',company\u id:selected\u cid},
成功:功能(reqResult){
var append_字符串=“”+
''+
'选择'+'事件:'+
''+ 
“您正在为从后端资源检索到的所有记录添加
元素。正如您所说,您的数据集非常大,因此选择框挂起是正常的

您可以尝试为选择框实现分页机制。例如,您可以使用类似偏移量的值(ajaxRequest.php?offsett=50)参数化后端资源(ajaxRequest.php)然后,对于每个请求,您从数据集中获得恒定数量的元素。例如,您可以通过每个请求获得50项记录

然后,对于每个请求,像以前一样附加
元素。最后一件事是实现一个按钮或其他东西来请求下一个数据集元素

您可以尝试的另一件事是通过向后端资源发送一个参数来过滤数据集,然后您可以只将过滤结果附加到选择框中。您可以通过实现jQuery Selected Plugin filter文本框的onChange事件来实现这一点。

您正在为从您检索到的所有记录附加
元素您的后端资源。正如您所说,您的数据集非常大,所以选择框挂起是正常的

您可以尝试为选择框实现分页机制。例如,您可以使用类似偏移量的值(ajaxRequest.php?offsett=50)参数化后端资源(ajaxRequest.php)然后,对于每个请求,您从数据集中获得恒定数量的元素。例如,您可以通过每个请求获得50项记录

然后,对于每个请求,像以前一样附加
元素。最后一件事是实现一个按钮或其他东西来请求下一个数据集元素


您可以尝试的另一件事是通过向后端资源发送一个参数来过滤数据集,然后您可以只将过滤结果附加到选择框中。您可以通过实现jQuery Selected Plugin filter文本框的onChange事件来实现这一点。

我想我需要一些关于这个问题的精确性:ajax请求是在在构建页面或在每个选择上启动?(ajax延迟是否会导致速度减慢?).到底什么东西慢,选择的打开,滚动,选择本身?插件是为这么多行制作的吗?将5k值加载到选择框中是没有效率的,不管使用什么方法,这总是比预期的慢。我会重新考虑请求数据的方式。拆分为多个类别或分页可能会让事情变得更糟这会快一点。或者甚至使用选择框以外的东西,可能是搜索框,甚至是使用数据库。我想我需要对这个问题进行一些精确的判断:是在开始构建页面时还是在每个选择上发出的ajax请求?(ajax延迟会导致速度减慢吗?).到底什么东西慢,选择的打开,滚动,选择本身?插件是为这么多行制作的吗?将5k值加载到选择框中是没有效率的,不管使用什么方法,这总是比预期的慢。我会重新考虑请求数据的方式。拆分为多个类别或分页可能会让事情变得更糟这会快一点,甚至可以使用选择框以外的东西,可能是搜索框,甚至是数据库。