我正在使用jQuery / AJAX开发autosuggest(自动完成)功能。问题是我将使用的MySQL表有30,000条记录,服务器负载很高。因此,每次访问者按下按钮时,我都不想查询MySQL表,我宁愿每个用户会话查询一次。有没有选择来实现这个目标?也许一次缓存或检索30,000条记录并将其存储在某个地方?
谢谢,
Zolka
答案 0 :(得分:0)
使用缓存选项。但它可以用户输入以前的值。其他明智的它击中了服务器。
$(function() {
$("#empname").autocomplete(
'getNames.action',
{
scroll:false,
minChars:1,
delay:0,
width:200,
autoFocus:true,
cache:true,
formatResult: function(data, value) {
return value.split(".")[0];
}
});
});
答案 1 :(得分:0)
30,000条记录,有一把好钥匙,你可以很快得到结果。
通常情况下,您不希望在每次按键时都执行AJAX,但是您需要延迟用户输入(例如500ms)。
var t;
$('#textbox').keyup(function() {
if (t) clearTimeout(t);
t = setTimeout(function() {
// AJAX call here
}, 500);
});