我正在使用 jQuery / AJAX 开发自动建议(自动完成)功能。问题是我将使用的 MySQL 表有 30,000 条记录,并且服务器负载很高。所以我不想在每次访问者按下按钮时查询 MySQL 表,我宁愿在每个用户会话中查询一次。有没有办法实现这一目标?也许一次缓存或检索 30,000 条记录并将其存储在某个地方?
谢谢,
佐尔卡
使用缓存选项。但它可以让用户输入以前的值。否则,它会击中服务器。
$(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];
}
});
});
30,000 条记录,用一个好的密钥,你可以很快得到结果。
通常你不想在每次按键时都执行 AJAX,但是你需要给用户输入一个延迟(例如 500 毫秒)。
var t;
$('#textbox').keyup(function() {
if (t) clearTimeout(t);
t = setTimeout(function() {
// AJAX call here
}, 500);
});