php - 使用 DOJO 自动完成文本框

标签 php autocomplete dojo

我正在寻找一种使用 DOJO 进行文本框自动提示的简单方法。我要查询的数据库表(使用 PHP 脚本,以 JSON 形式返回)有超过 100,000 条记录,所以这真的不应该采用 FilteringSelect 或 ComboBox 的形式,因为我显然不希望用户单击向下箭头返回整个数据集。

JQuery 和 YUI 等其他库使它变得非常简单,但这个特别的项目是基于 DOJO 的,我不愿意引入另一个 JS 类。

最佳答案

成功了!

即使我查询的是 100,000 条记录。返回速度低于 30 毫秒。我什至将数据库大小增加到 500,000 条记录,自动建议速度非常可以接受(仍低于 120 毫秒)。我确信在 PHP 端使用一点缓存可以做得更好。

我最终使用了 QueryReadStoreFilteringSelectJsonRestStore 可能会奏效,但我从 dojo 站点找到了一个简单的工作示例并以此为基础构建。

下面是一个自动提示文本框的有效 DOJO 代码,它可以访问非常大的数据集 - 简短而贴心:

            var vendorStore = new dojox.data.QueryReadStore({
                url: "../vms/htdocs/ajax/search.php"
            });

            var vendorSelect = new dijit.form.FilteringSelect({
                name: "vendorSelection",
                store: vendorStore,
                autoComplete: false,
                required: true,
                labelType: "text",
                placeHolder: "Search vendors",
                pageSize: 20,
                hasDownArrow: false,
                style: "width: 175px;",
                searchAttr: "company_name",
                id: "vendorSelect"
            },
            "vendorSelection");

            vendorSelect.startup();

当然要坚持<select id="vendorSelection"></select>页面正文中的某处。效果很好。

再次感谢!

关于php - 使用 DOJO 自动完成文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7871110/

相关文章:

javascript - 使用 AJAX Jquery 处理随机链接数

php - 为什么在 Restful 实现中使用 $_SESSION 不好?

php - 我应该用什么方式创建我的下载计数器数据库? MySQL PHP

autocomplete - Ace Editor Autocomplete - 两步自动完成

javascript - 如何从 Dojo 的构建系统中排除文件?

dojo - 动态隐藏 dgrid 中的列

php - fatal error : Call to undefined function base_url()

具有计数机制的 jQuery UI 自动完成类别

android - Autocompletetextview 和 SimpleCursorAdapter 的问题

javascript - Dojo XHR 根本不向其他服务器发送请求,但 jQuery 中一切正常