1

我正在使用 jQuery / AJAX 开发自动建议(自动完成)功能。问题是我将使用的 MySQL 表有 30,000 条记录,并且服务器负载很高。所以我不想在每次访问者按下按钮时查询 MySQL 表,我宁愿在每个用户会话中查询一次。有没有办法实现这一目标?也许一次缓存或检索 30,000 条记录并将其存储在某个地方?

谢谢,

佐尔卡

4

2 回答 2

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];
            }
        });
});
于 2012-05-03T07:31:32.267 回答
0

30,000 条记录,用一个好的密钥,你可以很快得到结果。

通常你不想在每次按键时都执行 AJAX,但是你需要给用户输入一个延迟(例如 500 毫秒)。

var t;
$('#textbox').keyup(function() {
    if (t) clearTimeout(t);
    t = setTimeout(function() {
        // AJAX call here
    }, 500);
});
于 2012-05-03T07:36:21.347 回答