【发布时间】:2016-04-05 13:32:57
【问题描述】:
我有一个函数,它在输入时返回一定数量的 AJAX 触发数据。每次它都会去 Oracle DB 获取数据并显示输出。
但是,一旦我输入“你好,我的名字是”这样的“长”字符串,每次我输入一个键时它都会启动一个请求(一次 10 个请求),并且需要 5 秒才能得到 1请求响应。
这导致我的应用程序出现性能问题。请问我该如何避免呢?
我已经尝试过不起作用的动态和延迟。我正在使用 typeahead 2 (typeahead-bs2.min.js)。
$( "#customer_description" ).typeahead({
dynamic: true,
delay: 5000,
source: function (query, process) {
$.ajax({
url: '/data/customer.php',
type: 'POST',
dataType: 'JSON',
//contentType: "text/json; charset=utf-8",
data: {
all: query,
},
success: function(data) {
//console.log(data);
process(data);
}
});
}
});
【问题讨论】:
-
延迟没有帮助。稍后它仍会执行 10 次查询。考虑输入。在进行查询之前字符串是否应该匹配某些条件,例如最小长度,或者可能在输入完成时运行查询等。
-
这是哪个版本的预输入?你能用a more recent version吗?
标签: jquery ajax typeahead.js