首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用jquery-select2上下文对象来优化搜索结果?

如何使用jquery-select2上下文对象来优化搜索结果?
EN

Stack Overflow用户
提问于 2014-02-05 22:28:09
回答 1查看 773关注 0票数 0

(首先,对于由于我太菜鸟而无法将文档转换为有效解决方案而产生的问题,我向第一次提交者道歉。希望有人会可怜我:) )

基本上,我有以下简单的基于ajax的select2输入字段:

代码语言:javascript
运行
复制
$(document).ready(function () {

    var allUsersUrl = '/cmd/match_list/usrname';

    $('#username').select2({
        placeholder: 'Enter username',
        minimumInputLength: 3,
        allowClear: true,
        dropdownAutoWidth: true,
        ajax: {
            quietMillis: 150,
            url: allUsersUrl,
            dataType: 'json',
            data: function (term, page, context) {
                return {
                    fullstr: "n",
                    fromldap: "y",
                    exact: "n",
                    string: term,
                };
            },
            results: function (data, page) {
                return { results: data.Results };
            }
        }
    });
}
.
.
.
<input id="username" name="username">

...but由于这涉及到相对缓慢和昂贵的后端LDAP查询,我希望在查找之后收到的任何后续按键都可以搜索初始结果,而不是触发另一个全新的(但非常相似的)后端查找。

例如,当我在字段中键入'smi‘时,将显示52个匹配项的候选列表。然后当我按下't‘时,我想在候选列表中查找'smit’,而不是像现在这样做另一个后端查找。

文档中提到了一个听起来与我的问题非常相关的'context‘对象,但我似乎就是不能从它跳到一个有效的解决方案,到目前为止,我还没有找到任何其他人使用这个对象的例子。

我们将非常感谢您的建议,如果这只是一些不属于本论坛的基本内容,我们将再次向您道歉。提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2014-04-08 11:16:24

查看您引用的上下文文档,可以看到上下文可用于对来自一个搜索词的结果进行分页,并且当搜索词发生更改时,上下文对象将被删除。

由于您正在处理对ldap的缓慢api调用,我怀疑您必须引入一个缓存层。一种简单的方法是将ldap结果存储在数据库的ldapcache表中或memcache键值对中。

然后当您可以在几分钟内重用'smi‘的响应时。

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

https://stackoverflow.com/questions/21579991

复制
相关文章

相似问题

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