动态加载大量选项后下拉列表停止工作

After dynamically loading lot of options dropdown stops working

我正在研究 select2 multiselect 下拉菜单。但是我正在尝试将选项动态加载到其他下拉列表的 selection 上的下拉列表中。 当我 select 下拉列表中的值然后 ajax 请求转到服务器和数据 c 意味着用户来了,这只是我试图加载到另一个下拉列表中的选项。 以下是我尝试加载数据的下拉菜单。

$(document).on('change','#platform', function(){
        var platform_value = $(this).val();

        $.ajax({
            url: '/myroute/function_name',
            type: 'Get',
            dataType: 'json',
            data : {platform_value:platform_value},
            success: function (res) {
                console.log('options ready');
                if(res != ""){
                    $('#user_id').html(res);
                    $('#user_id').select2();``
                }
            }
        });
    });

我的 res 对象将包含以下值。

"<option value=\"1\">abcd</option><option value=\"16000\">ajsha</option>"

我只有两个选项供参考。但实际上它有超过 16000 个选项。因此,一旦我 select 平台和 ajax 请求一直到选项加载到我的下拉列表中,我的整个页面都无法正常工作。甚至我的下拉菜单也无法正常工作。 select只有一个选项需要很多时间。

请帮帮我。我正面临这个问题,花了很多时间来解决这个问题。

由于 16000 是使用 select2 呈现的大量选项,因此创建 DOM 并在页面上呈现需要时间。这样做时,页面会出现您所遇到的异常行为。解决方案是不要一次加载所有 16000 个选项,加载前 1000 个结果并在滚动时或在搜索的帮助下延迟加载其他选项。 希望这会有所帮助。