javascript – 在Select2中获取和缓存结果

我的应用程序使用select2来显示通过Ajax调用检索的名称列表.
它使用select2 ajax功能.

但是问题在于,每当我在select2输入上键入时,select2都会提取项目.
我不想每次用户输入时都提取.我想在初始加载select2时获取项目,然后使用相同的数据,即使他们输入select2输入.

我该如何实现?

PS:我在Ajax中看到缓存标志,但是我认为它基于URL缓存结果.
用户在select2输入上键入时,它不会停止提取数据.

解决方法

使用ajax选择2加载数据,缓存就地.
$("#selIUT").select2({
            cacheDataSource: [],placeholder: "Please enter the name",query: function(query) {
                self = this;
                var key = query.term;
                var cachedData = self.cacheDataSource[key];

                if(cachedData) {
                    query.callback({results: cachedData.result});
                    return;
                } else {
                    $.ajax({
                      url: '/ajax/suggest/',data: { q : query.term },dataType: 'json',type: 'GET',success: function(data) {
                        self.cacheDataSource[key] = data;
                        query.callback({results: data.result});
                      }
                    })
                }
            },width: '250px',formatResult: formatResult,formatSelection: formatSelection,dropdownCssClass: "bigdrop",escapeMarkup: function (m) { return m; } 
        });

我希望你觉得有帮助.

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...